diff --git a/app/ecolyo.96a5f78b2e3f86df36fc.js b/app/ecolyo.c14e6cc0eac1f979b095.js similarity index 99% rename from app/ecolyo.96a5f78b2e3f86df36fc.js rename to app/ecolyo.c14e6cc0eac1f979b095.js index 69f60851fc226cf46ad2090715ce5410196b60c7..1540236fa580149938ef31e25243105a3cac9df1 100644 --- a/app/ecolyo.96a5f78b2e3f86df36fc.js +++ b/app/ecolyo.c14e6cc0eac1f979b095.js @@ -701,7 +701,7 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI")); var _reactDom = __webpack_require__("i8i4"); -var _cozyClient = __webpack_require__("SH7X"); +var _cozyClient = _interopRequireWildcard(__webpack_require__("SH7X")); var _reactRedux = __webpack_require__("/MKj"); @@ -713,45 +713,82 @@ var _oauth = __webpack_require__("sDS3"); var _lodash = __webpack_require__("LvDl"); -var _client = __webpack_require__("1L0a"); +var _manifest = _interopRequireDefault(__webpack_require__("pZg0")); -var _bar = __webpack_require__("WL0o"); +var _doctypes = _interopRequireDefault(__webpack_require__("D2hQ")); + +var _history = __webpack_require__("LhCv"); + +var _reactRouterDom = __webpack_require__("55Ip"); + +var _matomoTracker = _interopRequireDefault(__webpack_require__("vMBp")); (function () { var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; enterModule && enterModule(module); })(); +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; } + var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { return a; }; var setupApp = (0, _lodash.memoize)(function () { - var root = document.querySelector('[role=application]'); - - var _getValues = (0, _bar.getValues)(root.dataset), - lang = _getValues.lang; + var history = (0, _history.createBrowserHistory)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any - var polyglot = (0, _I18n.initTranslation)(lang, function (lang) { + var root = document.querySelector('[role=application]'); + var data = JSON.parse(root.dataset.cozy); + var protocol = window.location.protocol; + var cozyUrl = "".concat(protocol, "//").concat(data.domain); + var locale = 'fr'; + var polyglot = (0, _I18n.initTranslation)(locale, function (lang) { return __webpack_require__("/KVF")("./".concat(lang)); }); - var client = (0, _client.getClient)(); + var client = new _cozyClient.default({ + uri: cozyUrl, + token: data.token, + appMetadata: { + slug: _manifest.default.name, + version: _manifest.default.version + }, + schema: _doctypes.default + }); var persistedState = {}; var store = (0, _store.default)(client, persistedState); - /** I don't know why I need to for this... But if I don't it seems that - * we have a race between configureStore and initBar resulting in - * an error from cozy-client "store is already defined" - */ + cozy.bar.init({ + appName: data.app.name, + appEditor: data.app.editor, + cozyClient: client, + iconPath: data.app.icon, + lang: data.locale, + replaceTitleOnMobile: false, + appSlug: data.app.slug, + appNamePrefix: data.app.prefix + }); + var tracker; + + if (window.Piwik) { + Piwik.getTracker(); + tracker = new _matomoTracker.default({ + cozyUrl: cozyUrl, + url: "https://statweb.grandlyon.com/", + siteId: 117, + history: history, + phpFilename: 'matomo.php' + }); + } - setTimeout(function () { - (0, _bar.initBar)(client); - }, 0); return { root: root, store: store, client: client, - lang: lang, - polyglot: polyglot + locale: locale, + polyglot: polyglot, + history: history, + tracker: tracker }; }); @@ -760,8 +797,10 @@ var init = function init() { root = _setupApp.root, store = _setupApp.store, client = _setupApp.client, - lang = _setupApp.lang, - polyglot = _setupApp.polyglot; + locale = _setupApp.locale, + polyglot = _setupApp.polyglot, + history = _setupApp.history, + tracker = _setupApp.tracker; if ((0, _oauth.handleOAuthResponse)()) return; @@ -772,9 +811,11 @@ var init = function init() { }, /*#__PURE__*/_react.default.createElement(_cozyClient.CozyProvider, { client: client }, /*#__PURE__*/_react.default.createElement(_I18n.I18n, { - lang: lang, + lang: locale, polyglot: polyglot - }, /*#__PURE__*/_react.default.createElement(App, null)))), root); + }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.HashRouter, history, /*#__PURE__*/_react.default.createElement(App, { + tracker: tracker + }))))), root); }; // initial rendering of the application @@ -2516,78 +2557,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE /***/ }), -/***/ "1L0a": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -var _interopRequireDefault = __webpack_require__("TqRt"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getClient = void 0; - -var _cozyClient = _interopRequireDefault(__webpack_require__("SH7X")); - -var _manifest = _interopRequireDefault(__webpack_require__("pZg0")); - -var _doctypes = _interopRequireDefault(__webpack_require__("D2hQ")); - -(function () { - var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -/** - * Returns cozy client instance - * @returns {object} cozy client instance - */ -var getClient = function getClient() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - var root = document.querySelector('[role=application]'); - var data = root.dataset; - var protocol = window.location.protocol; - var cozyUrl = "".concat(protocol, "//").concat(data.cozyDomain); - return new _cozyClient.default({ - uri: cozyUrl, - token: data.cozyToken, - appMetadata: { - slug: _manifest.default.name, - version: _manifest.default.version - }, - schema: _doctypes.default - }); -}; - -exports.getClient = getClient; -; - -(function () { - var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(getClient, "getClient", "/builds/web-et-numerique/llle_project/ecolyo/src/utils/client.ts"); -})(); - -; - -(function () { - var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined; - leaveModule && leaveModule(module); -})(); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module))) - -/***/ }), - /***/ "1RIw": /***/ (function(module, exports, __webpack_require__) { @@ -21635,8 +21604,6 @@ var _react = _interopRequireWildcard(__webpack_require__("q1tI")); __webpack_require__("Tg1I"); -var _App = __webpack_require__("w0Hc"); - var _reactRedux = __webpack_require__("/MKj"); var _global = __webpack_require__("c4IZ"); @@ -21647,6 +21614,8 @@ var _screen = __webpack_require__("41Xj"); var _FeedbackModal = _interopRequireDefault(__webpack_require__("ak4Y")); +var _reactRouterDom = __webpack_require__("55Ip"); + (function () { var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; enterModule && enterModule(module); @@ -21667,6 +21636,7 @@ var Content = function Content(_ref) { _ref$background = _ref.background, background = _ref$background === void 0 ? 'inherit' : _ref$background; var dispatch = (0, _reactRedux.useDispatch)(); + var history = (0, _reactRouterDom.useHistory)(); var _useSelector = (0, _reactRedux.useSelector)(function (state) { return state.ecolyo.global; @@ -21689,20 +21659,18 @@ var Content = function Content(_ref) { * Handle Desktop scroll */ - var handleWindowScroll = function handleWindowScroll() { + var handleWindowScroll = (0, _react.useCallback)(function () { app && app.scrollTo(0, 0); window.scrollTo(0, 0); - }; // Set listners for scroll - + }, [app]); // Set listners for scroll (0, _react.useEffect)(function () { - var listner = _App.history.listen(handleWindowScroll); - + var listner = history.listen(handleWindowScroll); return function () { // remove listner subscription listner(); }; - }, []); + }, [handleWindowScroll, history]); (0, _react.useEffect)(function () { function handleResize() { if (innerWidth <= 768) { @@ -21734,8 +21702,8 @@ var Content = function Content(_ref) { }, children)); }; -__signature__(Content, "useDispatch{dispatch}\nuseSelector{{ screenType }}\nuseSelector{{ isFeedbacksOpen }}\nuseCallback{handleFeedbackModalClose}\nuseEffect{}\nuseEffect{}", function () { - return [_reactRedux.useDispatch, _reactRedux.useSelector, _reactRedux.useSelector]; +__signature__(Content, "useDispatch{dispatch}\nuseHistory{history}\nuseSelector{{ screenType }}\nuseSelector{{ isFeedbacksOpen }}\nuseCallback{handleFeedbackModalClose}\nuseCallback{handleWindowScroll}\nuseEffect{}\nuseEffect{}", function () { + return [_reactRedux.useDispatch, _reactRouterDom.useHistory, _reactRedux.useSelector, _reactRedux.useSelector]; }); var _default = Content; @@ -23122,109 +23090,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE /***/ }), -/***/ "WL0o": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -var _interopRequireDefault = __webpack_require__("TqRt"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.initBar = exports.getValues = void 0; - -var _manifest = _interopRequireDefault(__webpack_require__("pZg0")); - -(function () { - var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; - enterModule && enterModule(module); -})(); - -var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { - return a; -}; - -var getDataOrDefault = function getDataOrDefault(data, defaultData) { - return /^\{\{\..*\}\}$/.test(data) ? defaultData : data; -}; //NOSONAR - -/** - * default data will allow to display correctly the cozy-bar - * in the standalone (without cozy-stack connexion) - */ - - -var getValues = function getValues(_ref) { - var cozyAppName = _ref.cozyAppName, - cozyAppNamePrefix = _ref.cozyAppNamePrefix, - cozyIconPath = _ref.cozyIconPath; - var defaultValues = { - appIconDefault: __webpack_require__("ZAKO"), - appNamePrefixDefault: _manifest.default.name_prefix, - appNameDefault: _manifest.default.name, - appLocaleDefault: 'fr' - }; - return { - appName: getDataOrDefault(cozyAppName, defaultValues.appNameDefault), - appNamePrefix: getDataOrDefault(cozyAppNamePrefix, defaultValues.appNamePrefixDefault), - iconPath: getDataOrDefault(cozyIconPath, defaultValues.appIconDefault), - lang: defaultValues.appLocaleDefault - }; -}; -/** - * Cozy bar initialization - * @param {object} client - cozy client - */ - - -exports.getValues = getValues; - -var initBar = function initBar(client) { - var root = document.querySelector('[role=application]'); - - var _getValues = getValues(root.dataset), - appName = _getValues.appName, - appNamePrefix = _getValues.appNamePrefix, - iconPath = _getValues.iconPath, - lang = _getValues.lang; - - cozy.bar.init({ - appName: appName, - appNamePrefix: appNamePrefix, - cozyClient: client, - iconPath: iconPath, - lang: lang, - replaceTitleOnMobile: false - }); -}; - -exports.initBar = initBar; -; - -(function () { - var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined; - - if (!reactHotLoader) { - return; - } - - reactHotLoader.register(getDataOrDefault, "getDataOrDefault", "/builds/web-et-numerique/llle_project/ecolyo/src/utils/bar.ts"); - reactHotLoader.register(getValues, "getValues", "/builds/web-et-numerique/llle_project/ecolyo/src/utils/bar.ts"); - reactHotLoader.register(initBar, "initBar", "/builds/web-et-numerique/llle_project/ecolyo/src/utils/bar.ts"); -})(); - -; - -(function () { - var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined; - leaveModule && leaveModule(module); -})(); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module))) - -/***/ }), - /***/ "WQDB": /***/ (function(module) { @@ -23465,6 +23330,11 @@ var EnvironmentService = /*#__PURE__*/function () { return 'https://ecolyo-agent-rec.grandlyon.com'; } } + }, { + key: "isDev", + value: function isDev() { + return false; + } }, { key: "__reactstandin__regenerateByEval", value: // @ts-ignore @@ -24462,13 +24332,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE /***/ }), -/***/ "ZAKO": -/***/ (function(module, exports) { - -module.exports = "/img/icon.e4891962a18ac2a487b21f0381a5513f.svg"; - -/***/ }), - /***/ "ZSA5": /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -35234,7 +35097,7 @@ exports.push([module.i, "/* Cozy UI utilities classes */\n/* Cozy UI React compo /***/ "pZg0": /***/ (function(module, exports) { -module.exports = {"name":"Ecolyo","slug":"ecolyo","icon":"icon.svg","categories":["energy"],"version":"1.8.3","licence":"AGPL-3.0","editor":"Métropole de Lyon","default_locale":"fr","locales":{"fr":{"short_description":"Ecolyo est le service proposé par la Métropole de Lyon pour suivre et comprendre les consommations d’énergie et d’eau de votre foyer.","long_description":"Ecolyo est le service proposé par la Métropole de Lyon pour suivre et comprendre les consommations d’énergie et d’eau de votre foyer afin de vous accompagner dans la gestion quotidienne de ces consommations et ce, de façon ludique en vous lançant des défis personnalisés.","permissions":{"ecolyo":{"description":"Requises pour le fonctionnement des différentes parties de l’application (Analyse, liste d’écogestes personnalisée, …)."},"enedis":{"description":"Requises pour l’affichage et l’analyse de vos consommations électriques dans Ecolyo. Issues du connecteur Enedis."},"grdf":{"description":"Requises pour l’affichage et l’analyse de vos consommations de gaz dans Ecolyo. Issues du connecteur GRDF."},"egl":{"description":"Requises pour l’affichage et l’analyse de vos consommations d’eau dans Ecolyo. Issues du connecteur Eau du Grand Lyon."},"konnectors":{"description":"Requis pour vérifier la présence des connecteurs Enedis, GRDF et Eau du Grand Lyon ainsi que pour pouvoir les configurer à partir de l’application Ecolyo."},"accounts":{"description":"Requis pour stocker des informations propres aux comptes énergie et eau (Enedis, GRDF, Eau du Grand Lyon). Sont stockés votre numéro de PDL pour Enedis, votre numéro de PCE pour GRDF, vos logins et mots de passe pour Eau du Grand Lyon."},"triggers":{"description":"Requis pour le bon fonctionnement des connecteurs énergie et eau."},"jobs":{"description":"Requis pour le bon fonctionnement des connecteurs énergie et eau."},"terms":{"description":"Nécessaire pour la gestion des consentements de l'application"},"apps":{"description":"Requis par Cozy pour afficher les icônes des applications installées dans la barre Cozy."},"settings":{"description":"Requis pour afficher les paramètres Cozy dans la barre Cozy."},"ecolyo-dju":{"description":"Requis pour la récupération des DJU (Degrés Jours Unifiés), informations météorologiques permettant d’ajuster le modèle de comparaison des consommations énergétiques."},"dacc-dev":{"description":"Requis pour la récupération et l’envoi de statistiques d’utilisation anonymisées dans un environnement de test."},"dacc":{"description":"Requis pour envoyer des statistiques d'utilisation anonymisées."},"backoffice-rec":{"description":"Requis pour la récupération des données de la newsletter dans un environment de test."},"backoffice":{"description":"Requis pour la récupération des données de la newsletter."},"backoffice-partners-info-rec":{"description":"Requis pour la récupération du status des services partenaires dans un environment de test."},"backoffice-partners-info":{"description":"Requis pour la récupération du status des services partenaires"},"backoffice-prices-rec":{"description":"Requis pour la récupération du prix des fluides dans un environnement de test."},"backoffice-prices":{"description":"Requis pour la récupération du prix des fluides."}}},"en":{"short_description":"Ecolyo a free service developed by Métropole de Lyon to help you to monitor and understand the energy and water consumption of your home.","long_description":"Ecolyo a free service developed by the Métropole de Lyon to help you to monitor and understand the energy and water consumption of your home. To help you in reducing your daily consumption it gives you best energy consumption practices, consumption analysis and challenges to take up. At least one Smartmeter is needed among Linky (for electricity), Gazpar (for gas) or Téléo (for water).","permissions":{"ecolyo":{"description":"Required for the operation of the different parts of the application (Analysis, customized eco-gesture lists, etc...)."},"enedis":{"description":"Required for the display and analysis of your electricity consumption in Ecolyo. Retrieved by the Enedis connector."},"grdf":{"description":"Required for the display and analysis of your gas consumption in Ecolyo. Retrieved by the GRDF connector."},"egl":{"description":"Required for the display and analysis of your water consumption in Ecolyo. Retrieved by the Eau du Grand Lyon connector."},"konnectors":{"description":"Required to verify the presence of the Enedis, GRDF and Eau du Grand Lyon connectors as well as to be able to configure them from the Ecolyo application."},"accounts":{"description":"Required to store information specific to energy and water accounts (Enedis, GRDF, Eau du Grand Lyon). Your PDL number for Enedis, your PCE number for GRDF, your logins and passwords for Eau du Grand Lyon are stored."},"triggers":{"description":"Required for the correct functioning of the energy and water connectors."},"jobs":{"description":"Required for the correct functioning of the energy and water connectors."},"terms":{"description":"Required for the correct managment of CGU."},"apps":{"description":"Required to display the icons of installed applications in the Cozy bar."},"settings":{"description":"Required for the application's consents managment"},"ecolyo-dju":{"description":"Required to gather udd data (Unified Degree Days), a meteorological data allowing the app to adjust our energical consumption model. "},"dacc-dev":{"description":"Required for gathering and sending anonymous usage statistics for test environment."},"dacc":{"description":"Required for sending cozy anonymized stats."},"backoffice-rec":{"description":"Required for retrieving newsletter informations from backoffice rec."},"backoffice":{"description":"Required for retrieving newsletter informations from backoffice prod."},"backoffice-partners-info-rec":{"description":"Required for getting the status of partners' services in test environment."},"backoffice-partners-info":{"description":"Required for getting the status of partners' services"},"backoffice-prices-rec":{"description":"Required for getting fluid prices form backoffice rec."},"backoffice-prices":{"description":"Required for getting fluid prices form backoffice prod"}}}},"langs":["fr"],"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"routes":{"/":{"folder":"/","index":"index.html","public":false}},"services":{"enedisHalfHourMonthlyAnalysis":{"type":"node","file":"services/enedisHalfHourMonthlyAnalysis/ecolyo.js","trigger":"@cron 0 0 8 3 * *"},"monthlyReportNotification":{"type":"node","file":"services/monthlyReportNotification/ecolyo.js","trigger":"@cron 0 0 10 3 * *"},"consumptionAlert":{"type":"node","file":"services/consumptionAlert/ecolyo.js","trigger":"@cron 0 3 * * *"},"aggregatorUsageEvents":{"type":"node","file":"services/aggregatorUsageEvents/ecolyo.js","trigger":"@cron 0 1 * * *"},"fluidsPrices":{"type":"node","file":"services/fluidsPrices/ecolyo.js","trigger":"@cron 0 2 * * *"}},"permissions":{"ecolyo":{"type":"com.grandlyon.ecolyo.*"},"enedis":{"type":"com.grandlyon.enedis.*"},"grdf":{"type":"com.grandlyon.grdf.*"},"egl":{"type":"com.grandlyon.egl.*"},"konnectors":{"type":"io.cozy.konnectors"},"accounts":{"type":"io.cozy.accounts"},"triggers":{"type":"io.cozy.triggers"},"jobs":{"type":"io.cozy.jobs"},"terms":{"type":"io.cozy.terms"},"apps":{"type":"io.cozy.apps","verbs":["GET"]},"settings":{"type":"io.cozy.settings","verbs":["GET"]},"ecolyo-dju":{"type":"org.ecolyo.dju","verbs":["GET"]},"dacc":{"type":"cc.cozycloud.dacc","verbs":["ALL"]},"dacc-dev":{"type":"cc.cozycloud.dacc.dev","verbs":["ALL"]},"backoffice-rec":{"type":"org.ecolyo.backoffice.rec","verbs":["ALL"]},"backoffice-prod":{"type":"org.ecolyo.backoffice","verbs":["ALL"]},"backoffice-partners-info-rec":{"type":"org.ecolyo.backoffice.partners.info.rec","verbs":["ALL"]},"backoffice-partners-info":{"type":"org.ecolyo.backoffice.partners.info","verbs":["ALL"]},"backoffice-prices-rec":{"type":"org.ecolyo.backoffice.prices.rec","verbs":["ALL"]},"backoffice-prices":{"type":"org.ecolyo.backoffice.prices","verbs":["ALL"]}}} +module.exports = {"name":"Ecolyo","slug":"ecolyo","icon":"icon.svg","categories":["energy"],"version":"1.9.0","licence":"AGPL-3.0","editor":"Métropole de Lyon","default_locale":"fr","locales":{"fr":{"short_description":"Ecolyo est le service proposé par la Métropole de Lyon pour suivre et comprendre les consommations d’énergie et d’eau de votre foyer.","long_description":"Ecolyo est le service proposé par la Métropole de Lyon pour suivre et comprendre les consommations d’énergie et d’eau de votre foyer afin de vous accompagner dans la gestion quotidienne de ces consommations et ce, de façon ludique en vous lançant des défis personnalisés.","permissions":{"ecolyo":{"description":"Requises pour le fonctionnement des différentes parties de l’application (Analyse, liste d’écogestes personnalisée, …)."},"enedis":{"description":"Requises pour l’affichage et l’analyse de vos consommations électriques dans Ecolyo. Issues du connecteur Enedis."},"grdf":{"description":"Requises pour l’affichage et l’analyse de vos consommations de gaz dans Ecolyo. Issues du connecteur GRDF."},"egl":{"description":"Requises pour l’affichage et l’analyse de vos consommations d’eau dans Ecolyo. Issues du connecteur Eau du Grand Lyon."},"konnectors":{"description":"Requis pour vérifier la présence des connecteurs Enedis, GRDF et Eau du Grand Lyon ainsi que pour pouvoir les configurer à partir de l’application Ecolyo."},"accounts":{"description":"Requis pour stocker des informations propres aux comptes énergie et eau (Enedis, GRDF, Eau du Grand Lyon). Sont stockés votre numéro de PDL pour Enedis, votre numéro de PCE pour GRDF, vos logins et mots de passe pour Eau du Grand Lyon."},"triggers":{"description":"Requis pour le bon fonctionnement des connecteurs énergie et eau."},"jobs":{"description":"Requis pour le bon fonctionnement des connecteurs énergie et eau."},"terms":{"description":"Nécessaire pour la gestion des consentements de l'application"},"apps":{"description":"Requis par Cozy pour afficher les icônes des applications installées dans la barre Cozy."},"settings":{"description":"Requis pour afficher les paramètres Cozy dans la barre Cozy."},"ecolyo-dju":{"description":"Requis pour la récupération des DJU (Degrés Jours Unifiés), informations météorologiques permettant d’ajuster le modèle de comparaison des consommations énergétiques."},"dacc-dev":{"description":"Requis pour la récupération et l’envoi de statistiques d’utilisation anonymisées dans un environnement de test."},"dacc":{"description":"Requis pour envoyer des statistiques d'utilisation anonymisées."},"backoffice-rec":{"description":"Requis pour la récupération des données de la newsletter dans un environment de test."},"backoffice":{"description":"Requis pour la récupération des données de la newsletter."},"backoffice-partners-info-rec":{"description":"Requis pour la récupération du status des services partenaires dans un environment de test."},"backoffice-partners-info":{"description":"Requis pour la récupération du status des services partenaires"},"backoffice-prices-rec":{"description":"Requis pour la récupération du prix des fluides dans un environnement de test."},"backoffice-prices":{"description":"Requis pour la récupération du prix des fluides."}}},"en":{"short_description":"Ecolyo a free service developed by Métropole de Lyon to help you to monitor and understand the energy and water consumption of your home.","long_description":"Ecolyo a free service developed by the Métropole de Lyon to help you to monitor and understand the energy and water consumption of your home. To help you in reducing your daily consumption it gives you best energy consumption practices, consumption analysis and challenges to take up. At least one Smartmeter is needed among Linky (for electricity), Gazpar (for gas) or Téléo (for water).","permissions":{"ecolyo":{"description":"Required for the operation of the different parts of the application (Analysis, customized eco-gesture lists, etc...)."},"enedis":{"description":"Required for the display and analysis of your electricity consumption in Ecolyo. Retrieved by the Enedis connector."},"grdf":{"description":"Required for the display and analysis of your gas consumption in Ecolyo. Retrieved by the GRDF connector."},"egl":{"description":"Required for the display and analysis of your water consumption in Ecolyo. Retrieved by the Eau du Grand Lyon connector."},"konnectors":{"description":"Required to verify the presence of the Enedis, GRDF and Eau du Grand Lyon connectors as well as to be able to configure them from the Ecolyo application."},"accounts":{"description":"Required to store information specific to energy and water accounts (Enedis, GRDF, Eau du Grand Lyon). Your PDL number for Enedis, your PCE number for GRDF, your logins and passwords for Eau du Grand Lyon are stored."},"triggers":{"description":"Required for the correct functioning of the energy and water connectors."},"jobs":{"description":"Required for the correct functioning of the energy and water connectors."},"terms":{"description":"Required for the correct managment of CGU."},"apps":{"description":"Required to display the icons of installed applications in the Cozy bar."},"settings":{"description":"Required for the application's consents managment"},"ecolyo-dju":{"description":"Required to gather udd data (Unified Degree Days), a meteorological data allowing the app to adjust our energical consumption model. "},"dacc-dev":{"description":"Required for gathering and sending anonymous usage statistics for test environment."},"dacc":{"description":"Required for sending cozy anonymized stats."},"backoffice-rec":{"description":"Required for retrieving newsletter informations from backoffice rec."},"backoffice":{"description":"Required for retrieving newsletter informations from backoffice prod."},"backoffice-partners-info-rec":{"description":"Required for getting the status of partners' services in test environment."},"backoffice-partners-info":{"description":"Required for getting the status of partners' services"},"backoffice-prices-rec":{"description":"Required for getting fluid prices form backoffice rec."},"backoffice-prices":{"description":"Required for getting fluid prices form backoffice prod"}}}},"langs":["fr"],"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"routes":{"/":{"folder":"/","index":"index.html","public":false}},"services":{"enedisHalfHourMonthlyAnalysis":{"type":"node","file":"services/enedisHalfHourMonthlyAnalysis/ecolyo.js","trigger":"@cron 0 0 8 3 * *"},"monthlyReportNotification":{"type":"node","file":"services/monthlyReportNotification/ecolyo.js","trigger":"@cron 0 0 10 3 * *"},"consumptionAlert":{"type":"node","file":"services/consumptionAlert/ecolyo.js","trigger":"@cron 0 3 * * *"},"aggregatorUsageEvents":{"type":"node","file":"services/aggregatorUsageEvents/ecolyo.js","trigger":"@cron 0 1 * * *"},"fluidsPrices":{"type":"node","file":"services/fluidsPrices/ecolyo.js","trigger":"@cron 0 2 * * *"}},"permissions":{"ecolyo":{"type":"com.grandlyon.ecolyo.*"},"enedis":{"type":"com.grandlyon.enedis.*"},"grdf":{"type":"com.grandlyon.grdf.*"},"egl":{"type":"com.grandlyon.egl.*"},"konnectors":{"type":"io.cozy.konnectors"},"accounts":{"type":"io.cozy.accounts"},"triggers":{"type":"io.cozy.triggers"},"jobs":{"type":"io.cozy.jobs"},"terms":{"type":"io.cozy.terms"},"apps":{"type":"io.cozy.apps","verbs":["GET"]},"settings":{"type":"io.cozy.settings","verbs":["GET"]},"ecolyo-dju":{"type":"org.ecolyo.dju","verbs":["GET"]},"dacc":{"type":"cc.cozycloud.dacc","verbs":["ALL"]},"dacc-dev":{"type":"cc.cozycloud.dacc.dev","verbs":["ALL"]},"backoffice-rec":{"type":"org.ecolyo.backoffice.rec","verbs":["ALL"]},"backoffice-prod":{"type":"org.ecolyo.backoffice","verbs":["ALL"]},"backoffice-partners-info-rec":{"type":"org.ecolyo.backoffice.partners.info.rec","verbs":["ALL"]},"backoffice-partners-info":{"type":"org.ecolyo.backoffice.partners.info","verbs":["ALL"]},"backoffice-prices-rec":{"type":"org.ecolyo.backoffice.prices.rec","verbs":["ALL"]},"backoffice-prices":{"type":"org.ecolyo.backoffice.prices","verbs":["ALL"]}}} /***/ }), @@ -38287,6 +38150,186 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE /***/ }), +/***/ "vMBp": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { + +var _interopRequireDefault = __webpack_require__("TqRt"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE")); + +var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ")); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA")); + +var _appDataset = __webpack_require__("uVqs"); + +var _objectHash = _interopRequireDefault(__webpack_require__("1EKS")); + +(function () { + var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; + enterModule && enterModule(module); +})(); + +var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { + return a; +}; + +var MatomoTracker = /*#__PURE__*/function () { + function MatomoTracker(_ref) { + var cozyUrl = _ref.cozyUrl, + url = _ref.url, + siteId = _ref.siteId, + history = _ref.history, + _ref$phpFilename = _ref.phpFilename, + phpFilename = _ref$phpFilename === void 0 ? 'matomo.php' : _ref$phpFilename; + (0, _classCallCheck2.default)(this, MatomoTracker); + (0, _defineProperty2.default)(this, "cozyUrl", void 0); + (0, _defineProperty2.default)(this, "url", void 0); + (0, _defineProperty2.default)(this, "siteId", void 0); + (0, _defineProperty2.default)(this, "phpFilename", void 0); + (0, _defineProperty2.default)(this, "history", void 0); + (0, _defineProperty2.default)(this, "unlistenFromHistory", void 0); + + if (url === undefined || siteId === undefined) { + throw new Error('MatomoTracker cannot be initialized! SiteId and url are mandatory.'); + } + + this.cozyUrl = cozyUrl; + this.url = url; + this.siteId = siteId; + this.phpFilename = phpFilename; + this.history = history; + + this.unlistenFromHistory = function () { + return null; + }; + + this.init(); + } + + (0, _createClass2.default)(MatomoTracker, [{ + key: "init", + value: function init() { + if (typeof window !== 'undefined') { + window._paq = window._paq || []; + MatomoTracker.push(['enableHeartBeatTimer', 30]); + MatomoTracker.push(['setSiteId', this.siteId]); + MatomoTracker.push(['setReferrerUrl', 'https://ecolyo.com']); + MatomoTracker.push(['setTrackerUrl', "".concat(this.url + this.phpFilename)]); + MatomoTracker.push(['setUserId', (0, _objectHash.default)(this.cozyUrl)]); + MatomoTracker.push(['enableLinkTracking']); + } + + return { + push: MatomoTracker.push, + track: this.track, + connectToHistory: this.connectToHistory, + disconnectFromHistory: this.disconnectFromHistory + }; + } + }, { + key: "configure", + value: function configure() { + var cozyDomain; + var userId; + var root = document.querySelector('[role=application]'); + + if (root && root.dataset) { + cozyDomain = (0, _appDataset.readCozyDataFromDOM)('cozyDomain'); + } + + if (cozyDomain) { + userId = cozyDomain; + var indexOfPort = cozyDomain.indexOf(':'); + + if (indexOfPort >= 0) { + userId = userId.substring(0, indexOfPort); + } + } + + if (userId) { + MatomoTracker.push(['setUserId', userId]); + } + } + }, { + key: "connectToHistory", + value: function connectToHistory() { + var _this = this; + + this.unlistenFromHistory = this.history.listen(function (loc) { + _this.track(loc); + }); + } + }, { + key: "disconnectFromHistory", + value: function disconnectFromHistory() { + if (this.unlistenFromHistory) { + this.unlistenFromHistory(); + return true; + } + + return false; + } + }, { + key: "track", + value: function track(loc) { + if (typeof window === 'undefined') { + return; + } + + var currentPath = loc.hash.substring(1); + MatomoTracker.push(['setDocumentTitle', currentPath.substring(1)]); + MatomoTracker.push(['setCustomUrl', 'https://ecolyo.com' + currentPath]); + MatomoTracker.push(['setUserId', (0, _objectHash.default)(this.cozyUrl)]); + MatomoTracker.push(['trackPageView']); + } + }, { + key: "__reactstandin__regenerateByEval", + value: // @ts-ignore + function __reactstandin__regenerateByEval(key, code) { + // @ts-ignore + this[key] = eval(code); + } + }], [{ + key: "push", + value: function push(args) { + window._paq.push(args); + } + }]); + return MatomoTracker; +}(); + +exports.default = MatomoTracker; +; + +(function () { + var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined; + + if (!reactHotLoader) { + return; + } + + reactHotLoader.register(MatomoTracker, "MatomoTracker", "/builds/web-et-numerique/llle_project/ecolyo/src/utils/matomoTracker.ts"); +})(); + +; + +(function () { + var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined; + leaveModule && leaveModule(module); +})(); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module))) + +/***/ }), + /***/ "vOAL": /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -38342,14 +38385,12 @@ var _interopRequireDefault = __webpack_require__("TqRt"); Object.defineProperty(exports, "__esModule", { value: true }); -exports.history = exports.default = exports.App = void 0; +exports.default = exports.App = void 0; -var _react = _interopRequireDefault(__webpack_require__("q1tI")); +var _react = _interopRequireWildcard(__webpack_require__("q1tI")); var _reactRouterDom = __webpack_require__("55Ip"); -var _history = __webpack_require__("LhCv"); - var _Layout = __webpack_require__("Bh3+"); var _reactRedux = __webpack_require__("/MKj"); @@ -38366,19 +38407,24 @@ var _SplashScreenError = _interopRequireDefault(__webpack_require__("7RpM")); var _WelcomeModal = _interopRequireDefault(__webpack_require__("TabY")); +var _environment = _interopRequireDefault(__webpack_require__("X6DI")); + (function () { var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; enterModule && enterModule(module); })(); +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; } + var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { return a; }; -var history = (0, _history.createBrowserHistory)(); -exports.history = history; +var App = function App(_ref) { + var tracker = _ref.tracker; -var App = function App() { var _useSelector = (0, _reactRedux.useSelector)(function (state) { return state.ecolyo.profile; }), @@ -38390,6 +38436,18 @@ var App = function App() { }), termsStatus = _useSelector2.termsStatus; + var isDev = new _environment.default().isDev(); + (0, _react.useEffect)(function () { + if (tracker && !isDev) { + if (termsStatus.accepted) { + tracker.connectToHistory(); + } + + return function () { + tracker.disconnectFromHistory(); + }; + } + }, [termsStatus.accepted, tracker]); return /*#__PURE__*/_react.default.createElement(_reactRouterDom.HashRouter, history, /*#__PURE__*/_react.default.createElement(_Layout.Layout, null, /*#__PURE__*/_react.default.createElement(_SplashRoot.default, { splashComponent: _SplashScreen.default, splashErrorComponent: _SplashScreenError.default @@ -38405,7 +38463,7 @@ var App = function App() { exports.App = App; -__signature__(App, "useSelector{{ onboarding, isProfileEcogestureCompleted }}\nuseSelector{{ termsStatus }}", function () { +__signature__(App, "useSelector{{ onboarding, isProfileEcogestureCompleted }}\nuseSelector{{ termsStatus }}\nuseEffect{}", function () { return [_reactRedux.useSelector, _reactRedux.useSelector]; }); @@ -38421,7 +38479,6 @@ exports.default = _default2; return; } - reactHotLoader.register(history, "history", "/builds/web-et-numerique/llle_project/ecolyo/src/components/App.tsx"); reactHotLoader.register(App, "App", "/builds/web-et-numerique/llle_project/ecolyo/src/components/App.tsx"); reactHotLoader.register(_default, "default", "/builds/web-et-numerique/llle_project/ecolyo/src/components/App.tsx"); })(); diff --git a/img/icon.e4891962a18ac2a487b21f0381a5513f.svg b/img/icon.e4891962a18ac2a487b21f0381a5513f.svg deleted file mode 100644 index 7c0e38096960afb18746a2285ee2533ede3f46ef..0000000000000000000000000000000000000000 --- a/img/icon.e4891962a18ac2a487b21f0381a5513f.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M8.01323 15.059C14.8544 12.3888 14.3227 8.59276 13.9682 2.93081C11.7705 2.8343 9.82099 2.15873 8.01323 1.03278C6.20546 2.15873 4.25592 2.8343 2.05825 2.93081C1.70378 8.59276 1.17209 12.3888 8.01323 15.059Z" fill="#1B1C22"/> -<path d="M8.01325 0L7.54979 0.288665C5.85495 1.34429 4.05006 1.96586 2.01981 2.05502L1.23259 2.08959L1.18335 2.87604C1.16873 3.10958 1.15353 3.34193 1.13842 3.57294C0.97583 6.05878 0.823332 8.39029 1.50758 10.3994C2.29645 12.7158 4.12651 14.483 7.69452 15.8756L8.01325 16V15.059C1.44034 12.4935 1.67345 8.88869 2.01622 3.58822C2.03021 3.37192 2.04438 3.1528 2.05827 2.93081C4.25595 2.8343 6.20549 2.15873 8.01325 1.03277V0Z" fill="#FFC600"/> -<path d="M8.01323 0L8.4767 0.288665C10.1715 1.34429 11.9764 1.96586 14.0067 2.05502L14.7939 2.08959L14.8431 2.87604C14.8578 3.10958 14.873 3.34193 14.8881 3.57294C15.0507 6.05878 15.2032 8.39029 14.5189 10.3994C13.73 12.7158 11.9 14.483 8.33197 15.8756L8.01323 16V15.059C14.5862 12.4935 14.353 8.88869 14.0103 3.58822C13.9963 3.37192 13.9821 3.1528 13.9682 2.93081C11.7705 2.8343 9.821 2.15873 8.01323 1.03277V0Z" fill="#DB8300"/> -<path d="M5.85148 5.51416H6.16248C6.28668 5.51416 6.4058 5.56292 6.49363 5.64973C6.58146 5.73653 6.6308 5.85427 6.6308 5.97703V10.6758H5.38316V5.97703C5.38316 5.85427 5.4325 5.73653 5.52033 5.64973C5.60815 5.56292 5.72727 5.51416 5.85148 5.51416ZM8.01233 7.80214H8.32333C8.44754 7.80214 8.56666 7.85091 8.65448 7.93771C8.74231 8.02452 8.79165 8.14225 8.79165 8.26502V10.6758H7.54401V8.26502C7.54401 8.14225 7.59335 8.02452 7.68118 7.93771C7.76901 7.85091 7.88813 7.80214 8.01233 7.80214ZM10.302 6.91708H10.613C10.7372 6.91708 10.8563 6.96584 10.9441 7.05265C11.032 7.13945 11.0813 7.25719 11.0813 7.37995V10.6758H9.83366V7.37995C9.83366 7.25719 9.883 7.13945 9.97083 7.05265C10.0587 6.96584 10.1778 6.91708 10.302 6.91708Z" fill="#FFC600"/> -</svg> diff --git a/index.html b/index.html index 966491dc67d1775acd74ffe964071fcc70b83365..fa4c29708cb77d7fd28c5da09cba3957b261b5d6 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,user-scalable=0,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}}</head><body><div role="application" class="application" data-cozy-token="{{.Token}}" data-cozy-domain="{{.Domain}}" data-cozy-locale="{{.Locale}}" data-cozy-app-name="{{.AppName}}" data-cozy-app-slug="{{.AppSlug}}" data-cozy-app-name-prefix="{{.AppNamePrefix}}" data-cozy-app-editor="{{.AppEditor}}" data-cozy-icon-path="{{.IconPath}}"><script src="vendors/ecolyo.3256cfd41a1e2c66ff46.js"></script><script src="app/ecolyo.96a5f78b2e3f86df36fc.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,user-scalable=0,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.9b13a3dcb3dc8de92809.js"></script><script src="app/ecolyo.c14e6cc0eac1f979b095.js"></script></div></body></html> \ No newline at end of file diff --git a/manifest.webapp b/manifest.webapp index cd9a8865aab28359bf30b20378d2aaadf5737480..94ba4681ae3b45115a92c1767eadf739f7fe7c52 100644 --- a/manifest.webapp +++ b/manifest.webapp @@ -5,7 +5,7 @@ "categories": [ "energy" ], - "version": "1.8.3", + "version": "1.9.0", "licence": "AGPL-3.0", "editor": "Métropole de Lyon", "default_locale": "fr", diff --git a/services/aggregatorUsageEvents/ecolyo.js b/services/aggregatorUsageEvents/ecolyo.js index 00907fa8dc14ed440d635b2f1aa9ea99e5f0c55c..21786b926bb9283818e18ff55b3d2edef4d6718f 100644 --- a/services/aggregatorUsageEvents/ecolyo.js +++ b/services/aggregatorUsageEvents/ecolyo.js @@ -94653,6 +94653,10 @@ class EnvironmentService { } } + isDev() { + return __DEVELOPMENT__; + } + // @ts-ignore __reactstandin__regenerateByEval(key, code) { // @ts-ignore diff --git a/services/consumptionAlert/ecolyo.js b/services/consumptionAlert/ecolyo.js index d79f5c5f67fe3278d0838f9176db5b7368091818..8b81786bd856d188e2c25b0ad3f586be5a0b2058 100644 --- a/services/consumptionAlert/ecolyo.js +++ b/services/consumptionAlert/ecolyo.js @@ -77043,6 +77043,10 @@ class EnvironmentService { } } + isDev() { + return __DEVELOPMENT__; + } + // @ts-ignore __reactstandin__regenerateByEval(key, code) { // @ts-ignore diff --git a/services/fluidsPrices/ecolyo.js b/services/fluidsPrices/ecolyo.js index b52e4e858cc4d4251efb34b5f0ae2777116b133d..34d18082616e595149347e9843f8febdf40f9949 100644 --- a/services/fluidsPrices/ecolyo.js +++ b/services/fluidsPrices/ecolyo.js @@ -75379,6 +75379,10 @@ class EnvironmentService { } } + isDev() { + return __DEVELOPMENT__; + } + // @ts-ignore __reactstandin__regenerateByEval(key, code) { // @ts-ignore diff --git a/services/monthlyReportNotification/ecolyo.js b/services/monthlyReportNotification/ecolyo.js index f2819e6609028508135bea35c4f098de5119dcc9..42e761432c7f70839ca89c582effe3179fdb97b9 100644 --- a/services/monthlyReportNotification/ecolyo.js +++ b/services/monthlyReportNotification/ecolyo.js @@ -77043,6 +77043,10 @@ class EnvironmentService { } } + isDev() { + return __DEVELOPMENT__; + } + // @ts-ignore __reactstandin__regenerateByEval(key, code) { // @ts-ignore diff --git a/vendors/ecolyo.3256cfd41a1e2c66ff46.js b/vendors/ecolyo.9b13a3dcb3dc8de92809.js similarity index 99% rename from vendors/ecolyo.3256cfd41a1e2c66ff46.js rename to vendors/ecolyo.9b13a3dcb3dc8de92809.js index c60e8b00d532cabe67d0186cb00759cc6a9483bd..4d68b3ce4648933da3a7e968e2c3dc5313cf2541 100644 --- a/vendors/ecolyo.3256cfd41a1e2c66ff46.js +++ b/vendors/ecolyo.9b13a3dcb3dc8de92809.js @@ -315393,6 +315393,104 @@ __webpack_require__.r(__webpack_exports__); }); +/***/ }), + +/***/ "uVqs": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { + +var _interopRequireDefault = __webpack_require__("TqRt"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resetCache = exports.readCozyDataFromDOM = exports.readCozyData = exports.readApplicationDataset = void 0; + +var _memoize = _interopRequireDefault(__webpack_require__("44Ds")); + +(function () { + var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined; + enterModule && enterModule(module); +})(); + +var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) { + return a; +}; + +var readApplicationDataset = (0, _memoize.default)(function () { + var root = document.querySelector('[role=application]'); + return root && root.dataset; +}); +exports.readApplicationDataset = readApplicationDataset; +var readCozyData = (0, _memoize.default)(function () { + var dataset = readApplicationDataset(); + + if (dataset && dataset.cozy) { + return JSON.parse(dataset.cozy); + } + + return null; +}); +/** + * Reads an attribute set by the stack from the DOM + * + * A cozy app must receives on data from the stack, typically on the + * [role=application] node. Here, we try first to read from data-cozy + * and we fallback on data-[attrName]. + */ + +exports.readCozyData = readCozyData; +var readCozyDataFromDOM = (0, _memoize.default)(function (attrName) { + var data = readCozyData(); + + if (data && data[attrName] !== undefined) { + return data[attrName] === 'true' || data[attrName] === 'false' ? JSON.parse(data[attrName]) : data[attrName]; + } + + var appDataset = readApplicationDataset(); + + if (!appDataset) { + return; + } + + var attrName2 = "cozy".concat(attrName[0].toUpperCase()).concat(attrName.substring(1)); + var value = appDataset[attrName2]; + return value === undefined ? undefined : value === '' || JSON.parse(value); +}); +exports.readCozyDataFromDOM = readCozyDataFromDOM; + +var resetCache = function resetCache() { + readCozyDataFromDOM.cache = new _memoize.default.Cache(); + readCozyData.cache = new _memoize.default.Cache(); + readApplicationDataset.cache = new _memoize.default.Cache(); +}; + +exports.resetCache = resetCache; +; + +(function () { + var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined; + + if (!reactHotLoader) { + return; + } + + reactHotLoader.register(readApplicationDataset, "readApplicationDataset", "/builds/web-et-numerique/llle_project/ecolyo/node_modules/cozy-ui/transpiled/react/helpers/appDataset.js"); + reactHotLoader.register(readCozyData, "readCozyData", "/builds/web-et-numerique/llle_project/ecolyo/node_modules/cozy-ui/transpiled/react/helpers/appDataset.js"); + reactHotLoader.register(readCozyDataFromDOM, "readCozyDataFromDOM", "/builds/web-et-numerique/llle_project/ecolyo/node_modules/cozy-ui/transpiled/react/helpers/appDataset.js"); + reactHotLoader.register(resetCache, "resetCache", "/builds/web-et-numerique/llle_project/ecolyo/node_modules/cozy-ui/transpiled/react/helpers/appDataset.js"); +})(); + +; + +(function () { + var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined; + leaveModule && leaveModule(module); +})(); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module))) + /***/ }), /***/ "uXMh":