diff --git a/css/tarteaucitron.css b/css/tarteaucitron.css index 940f8e5..a01964c 100644 --- a/css/tarteaucitron.css +++ b/css/tarteaucitron.css @@ -13,6 +13,14 @@ span.tarteaucitronReadmoreSeparator { } /******/ +/** 09052021 **/ +.tarteaucitronName .tacCurrentStatus, .tarteaucitronName .tarteaucitronReadmoreSeparator { + color: #333!important; + font-size: 12px!important; + text-transform: capitalize; +} +/**************/ + /** 27032021 **/ button.tarteaucitron-toggle-group { display: block; diff --git a/tarteaucitron.js b/tarteaucitron.js index cf82a1e..5c68c24 100644 --- a/tarteaucitron.js +++ b/tarteaucitron.js @@ -17,7 +17,7 @@ var scripts = document.getElementsByTagName('script'), var tarteaucitron = { - "version": 20210422, + "version": 20210509, "cdn": cdn, "user": {}, "lang": {}, @@ -517,13 +517,13 @@ var tarteaucitron = { var tacRootAvailableEvent; if(typeof(Event) === 'function') { tacRootAvailableEvent = new Event("tac.root_available"); - }else{ + }else if (typeof(document.createEvent) === 'function'){ tacRootAvailableEvent = document.createEvent('Event'); tacRootAvailableEvent.initEvent("tac.root_available", true, true); } //end ie compatibility - window.dispatchEvent(tacRootAvailableEvent); + if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacRootAvailableEvent);} if (tarteaucitron.job !== undefined) { tarteaucitron.job = tarteaucitron.cleanArray(tarteaucitron.job); @@ -761,9 +761,10 @@ var tarteaucitron = { html += '
  • '; html += '
    '; - html += ' ' + service.name + ' ('+currentStatus+')'; + html += ' ' + service.name + ''; + html += ' '+currentStatus+''; + html += ' - '; html += '
    '; - if (tarteaucitron.parameters.moreInfoLink == true) { var link = 'https://tarteaucitron.io/service/' + service.key + '/'; @@ -862,7 +863,7 @@ var tarteaucitron = { var send_event_item; if(typeof(Event) === 'function') { send_event_item = new Event(event_key); - }else{ + }else if (typeof(document.createEvent) === 'function'){ send_event_item = document.createEvent('Event'); send_event_item.initEvent(event_key, true, true); } @@ -923,13 +924,13 @@ var tarteaucitron = { }, "addClass": function (id, className) { "use strict"; - if (document.getElementById(id) !== null) { + if (document.getElementById(id) !== null && document.getElementById(id).classList !== undefined) { document.getElementById(id).classList.add(className); } }, "removeClass": function (id, className) { "use strict"; - if (document.getElementById(id) !== null) { + if (document.getElementById(id) !== null && document.getElementById(id).classList !== undefined) { document.getElementById(id).classList.remove(className); } }, @@ -1028,11 +1029,11 @@ var tarteaucitron = { if (key !== "") { if (status === true) { - document.getElementById(key + 'Line').classList.add('tarteaucitronIsAllowed'); - document.getElementById(key + 'Line').classList.remove('tarteaucitronIsDenied'); + tarteaucitron.userInterface.addClass(key + 'Line', 'tarteaucitronIsAllowed'); + tarteaucitron.userInterface.removeClass(key + 'Line', 'tarteaucitronIsDenied'); } else if (status === false) { - document.getElementById(key + 'Line').classList.remove('tarteaucitronIsAllowed'); - document.getElementById(key + 'Line').classList.add('tarteaucitronIsDenied'); + tarteaucitron.userInterface.removeClass(key + 'Line', 'tarteaucitronIsAllowed'); + tarteaucitron.userInterface.addClass(key + 'Line', 'tarteaucitronIsDenied'); } // check if all services are allowed @@ -1141,7 +1142,9 @@ var tarteaucitron = { tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none'); document.getElementById('tarteaucitronClosePanel').focus(); - document.getElementsByTagName('body')[0].classList.add('tarteaucitron-modal-open'); + if (document.getElementsByTagName('body')[0].classList !== undefined) { + document.getElementsByTagName('body')[0].classList.add('tarteaucitron-modal-open'); + } tarteaucitron.userInterface.focusTrap(); tarteaucitron.userInterface.jsSizing('main'); @@ -1149,13 +1152,13 @@ var tarteaucitron = { var tacOpenPanelEvent; if(typeof(Event) === 'function') { tacOpenPanelEvent = new Event("tac.open_panel"); - }else{ + }else if (typeof(document.createEvent) === 'function'){ tacOpenPanelEvent = document.createEvent('Event'); tacOpenPanelEvent.initEvent("tac.open_panel", true, true); } //end ie compatibility - window.dispatchEvent(tacOpenPanelEvent); + if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacOpenPanelEvent);} }, "closePanel": function () { "use strict"; @@ -1182,19 +1185,21 @@ var tarteaucitron = { if (document.getElementById('tarteaucitronCloseAlert') !== null) { document.getElementById('tarteaucitronCloseAlert').focus(); } - document.getElementsByTagName('body')[0].classList.remove('tarteaucitron-modal-open'); + if (document.getElementsByTagName('body')[0].classList !== undefined) { + document.getElementsByTagName('body')[0].classList.remove('tarteaucitron-modal-open'); + } //ie compatibility var tacClosePanelEvent; if(typeof(Event) === 'function') { tacClosePanelEvent = new Event("tac.close_panel"); - }else{ + }else if (typeof(document.createEvent) === 'function'){ tacClosePanelEvent = document.createEvent('Event'); tacClosePanelEvent.initEvent("tac.close_panel", true, true); } //end ie compatibility - window.dispatchEvent(tacClosePanelEvent); + if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacClosePanelEvent);} }, "focusTrap": function() { "use strict"; @@ -1249,7 +1254,7 @@ var tarteaucitron = { var tacOpenAlertEvent; if(typeof(Event) === 'function') { tacOpenAlertEvent = new Event("tac.open_alert"); - }else{ + }else if (typeof(document.createEvent) === 'function'){ tacOpenAlertEvent = document.createEvent('Event'); tacOpenAlertEvent.initEvent("tac.open_alert", true, true); } @@ -1259,7 +1264,7 @@ var tarteaucitron = { document.getElementById('tarteaucitronAlertBig').focus(); } - window.dispatchEvent(tacOpenAlertEvent); + if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacOpenAlertEvent);} }, "closeAlert": function () { "use strict"; @@ -1275,13 +1280,13 @@ var tarteaucitron = { var tacCloseAlertEvent; if(typeof(Event) === 'function') { tacCloseAlertEvent = new Event("tac.close_alert"); - }else{ + }else if (typeof(document.createEvent) === 'function'){ tacCloseAlertEvent = document.createEvent('Event'); tacCloseAlertEvent.initEvent("tac.close_alert", true, true); } //end ie compatibility - window.dispatchEvent(tacCloseAlertEvent); + if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacCloseAlertEvent);} }, "toggleCookiesList": function () { "use strict"; @@ -1529,9 +1534,13 @@ var tarteaucitron = { var i; for (i = 0; i < arr.length; i += 1) { - document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/;'; - document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname + ';'; - document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname.split('.').slice(-2).join('.') + ';'; + + var rgxpCookie = new RegExp("^(.*;)?\\s*" + arr[i] + "\\s*=\\s*[^;]+(.*)?$"); + if (document.cookie.match(rgxpCookie)) { + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/;'; + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname + ';'; + document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname.split('.').slice(-2).join('.') + ';'; + } } }, "checkCount": function (key) { diff --git a/tarteaucitron.services.js b/tarteaucitron.services.js index c76dd56..7b3d4bc 100644 --- a/tarteaucitron.services.js +++ b/tarteaucitron.services.js @@ -15,9 +15,10 @@ tarteaucitron.services.iframe = { var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title")), width = x.getAttribute("width"), height = x.getAttribute("height"), + allowfullscreen = x.getAttribute("allowfullscreen"), url = x.getAttribute("data-url"); - return ''; + return ''; }); }, "fallback": function () { @@ -31,6 +32,70 @@ tarteaucitron.services.iframe = { } }; + +// elfsight +tarteaucitron.services.elfsight = { + "key": "elfsight", + "type": "support", + "name": "Elfsight", + "uri": "https://elfsight.com/privacy-policy/", + "needConsent": true, + "cookies": ['__cfduid', '_p_hfp_client_id', 'session_id'], + "js": function () { + "use strict"; + + tarteaucitron.addScript('https://apps.elfsight.com/p/platform.js'); + } +}; + +// plezi +tarteaucitron.services.plezi = { + "key": "plezi", + "type": "analytic", + "name": "Plezi", + "uri": "https://www.plezi.co/fr/mentions-legales/", + "needConsent": true, + "cookies": [], + "js": function () { + "use strict"; + + if (tarteaucitron.user.pleziTenant === undefined || tarteaucitron.user.pleziTw === undefined) { + return; + } + + tarteaucitron.addScript('https://app.plezi.co/scripts/ossleads_analytics.js?tenant=' + tarteaucitron.user.pleziTenant + '&tw=' + tarteaucitron.user.pleziTw); + } +}; + + +// smartsupp +tarteaucitron.services.smartsupp = { + "key": "smartsupp", + "type": "support", + "name": "Smartsupp", + "uri": "https://www.smartsupp.com/help/privacy/", + "needConsent": true, + "cookies": ['ssupp.vid', 'ssupp.visits', 'AWSALB', 'AWSALBCORS'], + "js": function () { + "use strict"; + + if (tarteaucitron.user.smartsuppKey === undefined) { + return; + } + + window._smartsupp = window._smartsupp || {}; + window._smartsupp.key = tarteaucitron.user.smartsuppKey; + window.smartsupp = function() { + window.smartsupp._.push(arguments) + }; + window.smartsupp._ = []; + + tarteaucitron.addScript('https://www.smartsuppchat.com/loader.js'); + } +}; + + + // sharpspring tarteaucitron.services.sharpspring = { "key": "sharpspring", @@ -155,7 +220,7 @@ tarteaucitron.services.xandrsegment = { tarteaucitron.fallback(['xandrsegment-canvas'], function (x) { var uniqId = '_' + Math.random().toString(36).substr(2, 9); uniqIds.push(uniqId); - return '
    '; + return '
    '; }); for (i = 0; i < uniqIds.length; i += 1) { @@ -197,7 +262,7 @@ tarteaucitron.services.xandrconversion = { tarteaucitron.fallback(['xandrconversion-canvas'], function (x) { var uniqId = '_' + Math.random().toString(36).substr(2, 9); uniqIds.push(uniqId); - return '
    '; + return '
    '; }); for (i = 0; i < uniqIds.length; i += 1) { @@ -233,9 +298,10 @@ tarteaucitron.services.helloasso = { var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'HelloAsso iframe'), width = x.getAttribute("width"), height = x.getAttribute("height"), - url = x.getAttribute("data-url"); + url = x.getAttribute("data-url"), + allowfullscreen = x.getAttribute("allowfullscreen"); - return ''; + return ''; }); }, "fallback": function () { @@ -263,9 +329,10 @@ tarteaucitron.services.podcloud = { var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'podCloud iframe'), width = x.getAttribute("width"), height = x.getAttribute("height"), - url = x.getAttribute("data-url"); + url = x.getAttribute("data-url"), + allowfullscreen= x.getAttribute("allowfullscreen"); - return ''; + return ''; }); }, "fallback": function () { @@ -294,9 +361,10 @@ tarteaucitron.services.facebookpost = { width = x.getAttribute("width"), height = x.getAttribute("height"), url = x.getAttribute("data-url"), - appId = x.getAttribute("data-appid"); + appId = x.getAttribute("data-appid"), + allowfullscreen = x.getAttribute("allowfullscreen"); - return ''; + return ''; }); }, "fallback": function () { @@ -729,9 +797,10 @@ tarteaucitron.services.calameo = { id = x.getAttribute("data-id"), width = x.getAttribute("width"), height = x.getAttribute("height"), - url = '//v.calameo.com/?bkcode=' + id; + url = '//v.calameo.com/?bkcode=' + id, + allowfullscreen = x.getAttribute("allowfullscreen"); - return ''; + return ''; }); }, "fallback": function () { @@ -934,13 +1003,14 @@ tarteaucitron.services.artetv = { video_json = x.getAttribute("json"), video_width = x.getAttribute("width"), video_height = x.getAttribute("height"), - video_frame; + video_frame, + video_allowfullscreen = x.getAttribute("allowfullscreen"); if (video_json === undefined) { return ""; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -974,6 +1044,7 @@ tarteaucitron.services.dailymotion = { frame_height = 'height=', video_frame, embed_type = x.getAttribute("embedType"), + allowfullscreen = x.getAttribute("allowfullscreen"), params = 'info=' + x.getAttribute("showinfo") + '&autoPlay=' + x.getAttribute("autoplay"); if (video_id === undefined) { @@ -992,7 +1063,7 @@ tarteaucitron.services.dailymotion = { if (embed_type === undefined || !['video', 'playlist'].includes(embed_type) ) { embed_type = "video"; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -1120,6 +1191,7 @@ tarteaucitron.services.deezer = { embed_type = x.getAttribute("embedType"), radius = x.getAttribute("radius"), tracklist = x.getAttribute("tracklist"), + allowfullscreen = x.getAttribute("allowfullscreen"), params; if (deezer_id === undefined) { @@ -1148,7 +1220,7 @@ tarteaucitron.services.deezer = { tracklist = "true"; } params = 'tracklist=' + tracklist + '&radius=' + radius; - deezer_frame = ''; + deezer_frame = ''; return deezer_frame; }); }, @@ -1261,7 +1333,7 @@ tarteaucitron.services.facebook = { "name": "Facebook", "uri": "https://www.facebook.com/policy.php", "needConsent": true, - "cookies": [], + "cookies": ['xs', 'sb', 'fr', 'datr', 'dpr', 'c_user'], "js": function () { "use strict"; tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like', 'fb-video'], ''); @@ -1754,14 +1826,7 @@ tarteaucitron.services.gtag = { * https://support.google.com/analytics/answer/7476333?hl=en * https://developers.google.com/analytics/devguides/collection/gtagjs/cross-domain */ - gtag( - 'config', - tarteaucitron.user.gtagUa, - { 'anonymize_ip': true }, - {linker: { - domains: tarteaucitron.user.gtagCrossdomain, - }}, - ); + gtag('config',tarteaucitron.user.gtagUa,{ 'anonymize_ip': true },{linker: {domains: tarteaucitron.user.gtagCrossdomain,}}); } else { gtag('config', tarteaucitron.user.gtagUa, { 'anonymize_ip': true }); } @@ -2506,7 +2571,7 @@ tarteaucitron.services.soundcloud = { type: 'video', name: 'SoundCloud', needConsent: true, - cookies: ['sc_anonymous_id'], + cookies: ['sc_anonymous_id', 'sclocale'], js: function () { "use strict"; tarteaucitron.fallback(['soundcloud_player'], function (x) { @@ -2891,6 +2956,7 @@ tarteaucitron.services.vimeo = { frame_height = 'height=', video_id = x.getAttribute("data-videoID") || x.getAttribute("videoID"), + video_allowfullscreen = x.getAttribute("data-allowfullscreen"), video_autopause = x.getAttribute("data-autopause") || '', video_autoplay = x.getAttribute("data-autoplay") || x.getAttribute("autoplay") || '', video_background = x.getAttribute("data-background") || '', @@ -3032,7 +3098,7 @@ tarteaucitron.services.vimeo = { video_qs = ""; } - video_frame = ''; + video_frame = ''; return video_frame; }); @@ -3087,7 +3153,7 @@ tarteaucitron.services.verizondottag = { }); tarteaucitron.addScript('https://s.yimg.com/wi/ytc.js', '', function () { - const items = window.dotq; + //const items = window.dotq; window.dotq = []; window.dotq.push = function (item) { YAHOO.ywa.I13N.fireBeacon([item]) @@ -3193,6 +3259,10 @@ tarteaucitron.services.atinternet = { return; } + if (tarteaucitron.user.atinternetAlreadyLoaded !== undefined) { + return; + } + tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function() { window.tag = new ATInternet.Tracker.Tag(); @@ -3216,6 +3286,8 @@ tarteaucitron.services.atinternet = { return; } + tarteaucitron.user.atinternetAlreadyLoaded = true; + tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function() { window.tag = new ATInternet.Tracker.Tag(); @@ -3279,12 +3351,15 @@ tarteaucitron.services.youtube = { tarteaucitron.fallback(['youtube_player'], function (x) { var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Youtube iframe'), video_id = x.getAttribute("videoID"), + srcdoc = x.getAttribute("srcdoc"), + loading = x.getAttribute("loading"), video_width = x.getAttribute("width"), frame_width = 'width=', video_height = x.getAttribute("height"), frame_height = 'height=', video_frame, - attrs = ["theme", "rel", "controls", "showinfo", "autoplay", "mute", "start"], + allowfullscreen = x.getAttribute("allowfullscreen"), + attrs = ["theme", "rel", "controls", "showinfo", "autoplay", "mute", "start", "loop"], params = attrs.filter(function (a) { return x.getAttribute(a) !== null; }).map(function (a) { @@ -3304,7 +3379,20 @@ tarteaucitron.services.youtube = { } else { frame_height += '"" '; } - video_frame = ''; + + if (srcdoc !== undefined && srcdoc !== null && srcdoc !== "") { + srcdoc = 'srcdoc="' + srcdoc + '" '; + } else { + srcdoc = ''; + } + + if (loading !== undefined && loading !== null && loading !== "") { + loading = 'loading '; + } else { + loading = ''; + } + + video_frame = ''; return video_frame; }); }, @@ -3337,6 +3425,7 @@ tarteaucitron.services.youtubeplaylist = { video_height = x.getAttribute("height"), frame_height = 'height=', video_frame, + allowfullscreen = x.getAttribute("allowfullscreen"), params = 'theme=' + x.getAttribute("theme") + '&rel=' + x.getAttribute("rel") + '&controls=' + x.getAttribute("controls") + '&showinfo=' + x.getAttribute("showinfo") + '&autoplay=' + x.getAttribute("autoplay") + '&mute=' + x.getAttribute("mute"); if (playlist_id === undefined) { @@ -3352,7 +3441,7 @@ tarteaucitron.services.youtubeplaylist = { } else { frame_height += '"" '; } - video_frame = ''; + video_frame = ''; return video_frame; }); }, @@ -3815,6 +3904,7 @@ tarteaucitron.services.matterport = { matterport_height = x.getAttribute("height"), frame_height = 'height=', matterport_parameters = x.getAttribute("parameters"), + matterport_allowfullscreen = x.getAttribute('allowfullscreen'), matterport_frame; if (matterport_id === undefined) { @@ -3834,7 +3924,7 @@ tarteaucitron.services.matterport = { return ""; } - matterport_frame = ''; + matterport_frame = ''; return matterport_frame; }); }, @@ -3930,6 +4020,10 @@ tarteaucitron.services.getquanty = { return; } + if (tarteaucitron.user.getquantyAlreadyLoaded !== undefined) { + return; + } + tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '&consent=1'); }, "fallback": function () { @@ -3938,6 +4032,8 @@ tarteaucitron.services.getquanty = { return; } + tarteaucitron.user.getquantyAlreadyLoaded = true; + tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '¬rack=1'); } }; @@ -3967,7 +4063,7 @@ tarteaucitron.services.youtubeapi = { "key": "youtubeapi", "type": "video", "name": "Youtube (Js API)", - "uri": "https://policies.google.com/privacy/", + "uri": "https://policies.google.com/privacy", "needConsent": true, "cookies": [], "js": function () {