{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/cookie_banner.js","webpack:///./node_modules/js-cookie/src/js.cookie.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Cookies","require","document","addEventListener","event","consentCookie","getJSON","doNotTrack","navigator","msDoNotTrack","gaStatusPrivacyPageConfirm","gaStatusPrivacyPageUpdate","gaCancelButtonOnPrivacyPage","onGaCancelButtonOnPrivacyPageClick","gaConfirmButtonOnPrivacyPage","onGaConfirmButtonOnPrivacyPageClick","rejectGoogleAnalytics","startGoogleTagManager","setCookieConsent","cookieBanner","classList","add","cookieAcceptButton","onAcceptButtonClick","cookieMoreButton","onMoreButtonClick","gaCancelButton","onGaCancelButtonClick","onDocumentClick","processCookieConsent","getElementById","cookieInformAndAsk","gaConfirmButton","gaStatusPrivacyPageCancel","GA_COOKIE_NAMES","GA_DISABLE_COOKIE_NAME","target","id","parentNode","hideBanner","hideDialog","removeBannerListeners","set","expires","className","replace","trim","removeEventListener","preventDefault","onGaConfirmButtonClick","url","data","dataLayer","push","w","Date","getTime","f","getElementsByTagName","j","createElement","async","src","insertBefore","window","remove","forEach","cookieName","disabled","factory","OldCookies","api","noConflict","extend","result","arguments","length","attributes","decode","decodeURIComponent","init","converter","path","defaults","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","json","jar","cookies","parts","slice","join","charAt","read","parse","withConverter"],"mappings":"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","file":"js/cookie_banner-2a16441e6fa501214aa8.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//cdn.fradeo.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 63);\n","// COOKIE BANNER\nconst Cookies = require('js-cookie');\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event){\n processCookieConsent();\n});\n\nconst cookieBanner = document.getElementById('cookie-banner');\nconst cookieInformAndAsk = document.getElementById('cookie-inform-and-ask');\nconst cookieAcceptButton = document.getElementById('cookie-accept-button');\nconst cookieMoreButton = document.getElementById('cookie-more-button');\nconst gaCancelButton = document.getElementById('ga-cancel-button');\nconst gaConfirmButton = document.getElementById('ga-confirm-button');\nconst gaCancelButtonOnPrivacyPage = document.getElementById('ga-cancel-button-on-privacy');\nconst gaConfirmButtonOnPrivacyPage = document.getElementById('ga-confirm-button-on-privacy');\nconst gaStatusPrivacyPage = document.getElementById('ga-status-on-privacy');\nconst gaStatusPrivacyPageCancel = document.getElementById('ga-status-on-privacy-cancel');\nconst gaStatusPrivacyPageConfirm = document.getElementById('ga-status-on-privacy-confirm');\n\nconst GA_PROPERTY = 'UA-113297846-1'\nconst GA_COOKIE_NAMES = ['__utma', '__utmb', '__utmc', '__utmz', '_ga', '_gat'];\nconst GA_DISABLE_COOKIE_NAME = `ga-disable-${GA_PROPERTY}`;\nconst AT_COOKIE_NAMES = ['__atuvc', '__atuvs'];\n\nfunction processCookieConsent() {\n const consentCookie = Cookies.getJSON('hasConsent');\n const doNotTrack = navigator.doNotTrack || navigator.msDoNotTrack;\n\n // 1. On active les button GA s'ils sont présent sur la page\n if(gaStatusPrivacyPageConfirm){\n gaStatusPrivacyPageUpdate();\n gaCancelButtonOnPrivacyPage.addEventListener('click', onGaCancelButtonOnPrivacyPageClick, false);\n gaConfirmButtonOnPrivacyPage.addEventListener('click', onGaConfirmButtonOnPrivacyPageClick, false);\n }\n\n // 3. Si le cookie existe et qu'il vaut explicitement \"false\" ou que le \"doNotTrack\" est défini à \"OUI\"\n // l'utilisateur s'oppose à l'utilisation des cookies. On exécute une fonction spécifique pour ce cas.\n if (doNotTrack === 'yes' || doNotTrack === '1' || consentCookie === false) {\n rejectGoogleAnalytics();\n return;\n }\n\n // 4. Si le cookie existe et qu'il vaut explicitement \"true\", on démarre juste Google Tag Manager\n if (consentCookie === true) {\n startGoogleTagManager();\n return;\n }\n\n // 5. Si le cookie n'existe pas et que le \"doNotTrack\" est défini à \"NON\", on crée le cookie \"hasConsent\" avec pour\n // valeur \"true\" pour une durée de 13 mois (la durée maximum autorisée) puis on démarre Google Analytics\n if (doNotTrack === 'no' || doNotTrack === '0') {\n setCookieConsent();\n startGoogleTagManager();\n return;\n }\n\n // 6. Si le cookie n'existe pas et que le \"doNotTrack\" n'est pas défini, alors on affiche le bandeau et on crée les listeners\n cookieBanner.classList.add('active');\n cookieAcceptButton.addEventListener('click', onAcceptButtonClick, false);\n cookieMoreButton.addEventListener('click', onMoreButtonClick, false);\n gaCancelButton.addEventListener('click', onGaCancelButtonClick, false);\n\n\n // 8. Si le visiteur continue la navigation, il conscent par défaut\n document.addEventListener('click', onDocumentClick, false);\n}\n\nfunction onDocumentClick(event) {\n const target = event.target;\n\n // Si l'utilisateur a cliqué sur le bandeau ou le bouton dans ce dernier alors on ne fait rien.\n if (target.id === 'cookie-banner'\n || target.parentNode.id === 'cookie-banner'\n || target.parentNode.parentNode.id === 'cookie-banner'\n || target.id === 'cookie-more-button'\n || target.id === 'ga-cancel-button'\n || target.id === 'ga-confirm-button'\n || target.id === 'addthi-opt-out'\n || target.id === 'cookie-accept-button') {\n return;\n }\n\n setCookieConsent();\n startGoogleTagManager();\n hideBanner();\n hideDialog();\n\n removeBannerListeners();\n}\n\nfunction setCookieConsent(){\n Cookies.set('hasConsent', true, { expires: 365 });\n}\n\nfunction hideBanner(){\n cookieBanner.className = cookieBanner.className.replace('active', '').trim();\n}\n\nfunction hideDialog(){\n cookieInformAndAsk.className = cookieBanner.className.replace('active', '').trim();\n}\n\nfunction removeBannerListeners(){\n document.removeEventListener('click', onDocumentClick, false);\n cookieMoreButton.removeEventListener('click', onMoreButtonClick, false);\n cookieAcceptButton.removeEventListener('click', onAcceptButtonClick, false);\n gaCancelButton.removeEventListener('click', onGaCancelButtonClick, false);\n}\n\n\nfunction onAcceptButtonClick(event){\n event.preventDefault();\n\n setCookieConsent();\n startGoogleTagManager();\n hideBanner();\n\n removeBannerListeners();\n}\n\nfunction onMoreButtonClick(event) {\n event.preventDefault();\n\n // On affiche la boîte de dialogue permettant à l'utilisateur de faire son choix\n cookieInformAndAsk.classList.add('active');\n\n\n hideBanner();\n\n // On crée les listeners sur les boutons de la boîte de dialogue\n gaCancelButton.addEventListener('click', onGaCancelButtonClick, false);\n gaConfirmButton.addEventListener('click', onGaConfirmButtonClick, false);\n}\n\nfunction onGaConfirmButtonClick(event) {\n event.preventDefault();\n\n setCookieConsent();\n startGoogleTagManager();\n\n hideDialog();\n\n // On supprime les listeners sur les boutons de la boîte de dialogue\n gaCancelButton.removeEventListener('click', onGaCancelButtonClick, false);\n gaConfirmButton.removeEventListener('click', onGaConfirmButtonClick, false);\n}\n\nfunction onGaCancelButtonClick(event) {\n event.preventDefault();\n\n // On lance la procédure de refus de l'utilisation des cookies\n rejectGoogleAnalytics();\n hideBanner();\n hideDialog();\n\n // On supprime les listeners sur les boutons de la boîte de dialogue\n gaCancelButton.removeEventListener('click', onGaCancelButtonClick, false);\n gaConfirmButton.removeEventListener('click', onGaConfirmButtonClick, false);\n cookieMoreButton.removeEventListener('click', onMoreButtonClick, false);\n cookieAcceptButton.removeEventListener('click', onAcceptButtonClick, false);\n}\n\nfunction onGaCancelButtonOnPrivacyPageClick(event) {\n event.preventDefault();\n\n rejectGoogleAnalytics();\n\n gaStatusPrivacyPageUpdate();\n}\n\nfunction onGaConfirmButtonOnPrivacyPageClick(event) {\n event.preventDefault();\n\n setCookieConsent();\n startGoogleTagManager();\n\n gaStatusPrivacyPageUpdate();\n}\n\nfunction startGoogleTagManager() {\n document.addEventListener('turbolinks:load', function(event) {\n var url = event.data.url; dataLayer.push({\n 'event':'pageView',\n 'virtualUrl': url\n });\n });\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-P7JKNZV');\n removeGoogleAnalyticsDisableCookie();\n}\n\nfunction rejectAddThis(){\n AT_COOKIE_NAMES.forEach(cookieName => Cookies.remove(cookieName));\n}\n\nfunction rejectGoogleAnalytics() {\n // création du cookie spécifique empêchant Google Analytics de démarrer\n Cookies.set(GA_DISABLE_COOKIE_NAME, true, { expires: 395 });\n // insertion de cette valeur dans l'objet window\n window[GA_DISABLE_COOKIE_NAME] = true;\n\n // création du cookie précisant le choix utilisateur\n Cookies.set('hasConsent', false, { expires: 395 });\n\n // suppression de tous les cookies précédemment créés par Google Analytics\n GA_COOKIE_NAMES.forEach(cookieName => Cookies.remove(cookieName));\n}\n\nfunction removeGoogleAnalyticsDisableCookie(){\n Cookies.remove(GA_DISABLE_COOKIE_NAME);\n window[GA_DISABLE_COOKIE_NAME] = false;\n}\n\nfunction gaStatusPrivacyPageUpdate(){\n if(gaStatusPrivacyPageConfirm){\n const consentCookie = Cookies.getJSON('hasConsent');\n const doNotTrack = navigator.doNotTrack || navigator.msDoNotTrack;\n\n if (doNotTrack === 'yes' || doNotTrack === '1' || consentCookie === false) {\n gaStatusPrivacyPageConfirm.classList.remove('show');\n gaStatusPrivacyPageCancel.classList.add('show');\n gaCancelButtonOnPrivacyPage.disabled = true;\n gaConfirmButtonOnPrivacyPage.disabled = false;\n } else {\n gaStatusPrivacyPageConfirm.classList.add('show');\n gaStatusPrivacyPageCancel.classList.remove('show');\n gaConfirmButtonOnPrivacyPage.disabled = true;\n gaCancelButtonOnPrivacyPage.disabled = false;\n }\n }\n}\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n(function (factory) {\n var registeredInModuleLoader;\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n return result;\n }\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n function init(converter) {\n function api() {}\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n }\n\n // We're using \"expires\" because \"max-age\" is not supported by IE\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n try {\n var result = JSON.stringify(value);\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n stringifiedAttributes += '; ' + attributeName;\n if (attributes[attributeName] === true) {\n continue;\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n var jar = {};\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n jar[name] = cookie;\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n return key ? jar[key] : jar;\n }\n api.set = set;\n api.get = function (key) {\n return get(key, false /* read as raw */);\n };\n\n api.getJSON = function (key) {\n return get(key, true /* read as json */);\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n return init(function () {});\n});"],"sourceRoot":""}