@gouvfr/dsfr-roller
Version:
Le module `dsfr-roller` permet de publier le site de documentation du Système de Design de l’État - DSFR
863 lines (827 loc) • 149 kB
JavaScript
/* eslint-disable */
var scripts = document.getElementsByTagName('script'),
path = (document.currentScript || scripts[scripts.length - 1]).src.split(
'?'
)[0],
tarteaucitronForceCDN =
tarteaucitronForceCDN === undefined ? '' : tarteaucitronForceCDN,
tarteaucitronUseMin =
tarteaucitronUseMin === undefined ? '' : tarteaucitronUseMin,
cdn =
tarteaucitronForceCDN === ''
? path.split('/').slice(0, -1).join('/') + '/'
: tarteaucitronForceCDN,
alreadyLaunch = alreadyLaunch === undefined ? 0 : alreadyLaunch,
tarteaucitronForceLanguage =
tarteaucitronForceLanguage === undefined
? ''
: tarteaucitronForceLanguage,
tarteaucitronForceExpire =
tarteaucitronForceExpire === undefined ? '' : tarteaucitronForceExpire,
tarteaucitronCustomText =
tarteaucitronCustomText === undefined ? '' : tarteaucitronCustomText,
// tarteaucitronExpireInDay: true for day(s) value - false for hour(s) value
tarteaucitronExpireInDay =
tarteaucitronExpireInDay === undefined ||
typeof tarteaucitronExpireInDay !== 'boolean'
? true
: tarteaucitronExpireInDay,
timeExpire = 31536000000,
tarteaucitronProLoadServices,
tarteaucitronNoAdBlocker = false;
export var tarteaucitron = {
version: 20230203,
cdn: cdn,
user: {},
lang: {},
services: {},
added: [],
idprocessed: [],
state: {},
launch: [],
parameters: {},
isAjax: false,
reloadThePage: false,
events: {
init: function () {},
load: function () {},
},
init: function (params) {
'use strict';
var origOpen;
tarteaucitron.parameters = params;
if (alreadyLaunch === 0) {
alreadyLaunch = 1;
if (window.addEventListener) {
window.addEventListener(
'load',
function () {
tarteaucitron.initEvents.loadEvent(false);
},
false
);
window.addEventListener(
'scroll',
function () {
tarteaucitron.initEvents.scrollEvent();
},
false
);
window.addEventListener(
'keydown',
function (evt) {
tarteaucitron.initEvents.keydownEvent(false, evt);
},
false
);
window.addEventListener(
'hashchange',
function () {
tarteaucitron.initEvents.hashchangeEvent();
},
false
);
window.addEventListener(
'resize',
function () {
tarteaucitron.initEvents.resizeEvent();
},
false
);
} else {
window.attachEvent('onload', function () {
tarteaucitron.initEvents.loadEvent(true);
});
window.attachEvent('onscroll', function () {
tarteaucitron.initEvents.scrollEvent();
});
window.attachEvent('onkeydown', function (evt) {
tarteaucitron.initEvents.keydownEvent(true, evt);
});
window.attachEvent('onhashchange', function () {
tarteaucitron.initEvents.hashchangeEvent();
});
window.attachEvent('onresize', function () {
tarteaucitron.initEvents.resizeEvent();
});
}
if (typeof XMLHttpRequest !== 'undefined') {
origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function () {
if (window.addEventListener) {
this.addEventListener(
'load',
function () {
if (
typeof tarteaucitronProLoadServices ===
'function'
) {
tarteaucitronProLoadServices();
}
},
false
);
} else if (typeof this.attachEvent !== 'undefined') {
this.attachEvent('onload', function () {
if (
typeof tarteaucitronProLoadServices ===
'function'
) {
tarteaucitronProLoadServices();
}
});
} else {
if (
typeof tarteaucitronProLoadServices === 'function'
) {
setTimeout(tarteaucitronProLoadServices, 1000);
}
}
try {
origOpen.apply(this, arguments);
} catch (err) {}
};
}
}
if (tarteaucitron.events.init) {
tarteaucitron.events.init();
}
},
initEvents: {
loadEvent: function (isOldBrowser) {
tarteaucitron.load();
tarteaucitron.fallback(
['tarteaucitronOpenPanel'],
function (elem) {
if (isOldBrowser) {
elem.attachEvent('onclick', function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
});
} else {
elem.addEventListener(
'click',
function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
},
false
);
}
},
true
);
},
keydownEvent: function (isOldBrowser, evt) {
if (
document.querySelector('.tarteaucitron-modal-open') &&
evt.code === 'Escape'
) {
tarteaucitron.userInterface.closePanel();
}
if (isOldBrowser) {
if (
evt.keyCode === 9 &&
focusableEls.indexOf(evt.target) >= 0
) {
if (evt.shiftKey) {
/* shift + tab */ if (
document.activeElement === firstFocusableEl
) {
lastFocusableEl.focus();
evt.preventDefault();
}
} /* tab */ else {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
evt.preventDefault();
}
}
}
}
},
hashchangeEvent: function () {
if (
document.location.hash === tarteaucitron.hashtag &&
tarteaucitron.hashtag !== ''
) {
tarteaucitron.userInterface.openPanel();
}
},
resizeEvent: function () {
var tacElem = document.getElementById('tarteaucitron');
var tacCookieContainer = document.getElementById(
'tarteaucitronCookiesListContainer'
);
if (tacElem && tacElem.style.display === 'block') {
tarteaucitron.userInterface.jsSizing('main');
}
if (
tacCookieContainer &&
tacCookieContainer.style.display === 'block'
) {
tarteaucitron.userInterface.jsSizing('cookie');
}
},
scrollEvent: function () {
var scrollPos =
window.pageYOffset || document.documentElement.scrollTop;
var heightPosition;
var tacPercentage = document.getElementById(
'tarteaucitronPercentage'
);
var tacAlertBig = document.getElementById('tarteaucitronAlertBig');
if (tacAlertBig && !tarteaucitron.highPrivacy) {
if (tacAlertBig.style.display === 'block') {
heightPosition = tacAlertBig.offsetHeight + 'px';
if (scrollPos > screen.height * 2) {
tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > screen.height / 2) {
document.getElementById(
'tarteaucitronDisclaimerAlert'
).innerHTML =
'<strong>' +
tarteaucitron.lang.alertBigScroll +
'</strong> ' +
tarteaucitron.lang.alertBig;
}
if (tacPercentage) {
if (tarteaucitron.orientation === 'top') {
tacPercentage.style.top = heightPosition;
} else {
tacPercentage.style.bottom = heightPosition;
}
tacPercentage.style.width =
(100 / (screen.height * 2)) * scrollPos + '%';
}
}
}
},
},
load: function () {
'use strict';
var cdn = tarteaucitron.cdn,
language = tarteaucitron.getLanguage(),
useMinifiedJS =
cdn.indexOf('cdn.jsdelivr.net') >= 0 ||
path.indexOf('.min.') >= 0 ||
tarteaucitronUseMin !== '',
pathToLang =
cdn +
'lang/tarteaucitron.' +
language +
(useMinifiedJS ? '.min' : '') +
'.js',
pathToServices =
cdn +
'tarteaucitron.services' +
(useMinifiedJS ? '.min' : '') +
'.js',
linkElement = document.createElement('link'),
defaults = {
adblocker: false,
hashtag: '#tarteaucitron',
cookieName: 'tarteaucitron',
highPrivacy: true,
orientation: 'middle',
bodyPosition: 'bottom',
removeCredit: false,
showAlertSmall: false,
showDetailsOnClick: true,
showIcon: true,
iconPosition: 'BottomRight',
cookieslist: false,
handleBrowserDNTRequest: false,
DenyAllCta: true,
AcceptAllCta: true,
moreInfoLink: true,
privacyUrl: '',
useExternalCss: false,
useExternalJs: false,
mandatory: true,
mandatoryCta: true,
closePopup: false,
groupServices: false,
serviceDefaultState: 'wait',
},
params = tarteaucitron.parameters;
// Don't show the middle bar if we are on the privacy policy or more page
if (
((tarteaucitron.parameters.readmoreLink !== undefined &&
window.location.href ==
tarteaucitron.parameters.readmoreLink) ||
window.location.href == tarteaucitron.parameters.privacyUrl) &&
tarteaucitron.parameters.orientation == 'middle'
) {
tarteaucitron.parameters.orientation = 'bottom';
}
// Step -1
if (typeof tarteaucitronCustomPremium !== 'undefined') {
tarteaucitronCustomPremium();
}
// Step 0: get params
if (params !== undefined) {
for (var k in defaults) {
if (!tarteaucitron.parameters.hasOwnProperty(k)) {
tarteaucitron.parameters[k] = defaults[k];
}
}
}
// global
tarteaucitron.orientation = tarteaucitron.parameters.orientation;
tarteaucitron.hashtag = tarteaucitron.parameters.hashtag;
tarteaucitron.highPrivacy = tarteaucitron.parameters.highPrivacy;
tarteaucitron.handleBrowserDNTRequest =
tarteaucitron.parameters.handleBrowserDNTRequest;
tarteaucitron.customCloserId = tarteaucitron.parameters.customCloserId;
// Step 1: load css
if (!tarteaucitron.parameters.useExternalCss) {
linkElement.rel = 'stylesheet';
linkElement.type = 'text/css';
linkElement.href =
cdn +
'css/tarteaucitron' +
(useMinifiedJS ? '.min' : '') +
'.css';
document.getElementsByTagName('head')[0].appendChild(linkElement);
}
// Step 2: load language and services
tarteaucitron.addInternalScript(pathToLang, '', function () {
if (tarteaucitronCustomText !== '') {
tarteaucitron.lang = tarteaucitron.AddOrUpdate(
tarteaucitron.lang,
tarteaucitronCustomText
);
}
tarteaucitron.addInternalScript(pathToServices, '', function () {
// disable the expand option if services grouped by category
if (tarteaucitron.parameters.groupServices == true) {
tarteaucitron.parameters.showDetailsOnClick = true;
}
var body = document.body,
div = document.createElement('div'),
html = '',
index,
orientation = 'Top',
modalAttrs = '',
cat = [
'ads',
'analytic',
'api',
'comment',
'social',
'support',
'video',
'other',
],
i;
cat = cat.sort(function (a, b) {
if (
tarteaucitron.lang[a].title >
tarteaucitron.lang[b].title
) {
return 1;
}
if (
tarteaucitron.lang[a].title <
tarteaucitron.lang[b].title
) {
return -1;
}
return 0;
});
// Step 3: prepare the html
html += `
<div role="heading" aria-level="1" id="tac_title" class="tac_visually-hidden fr-hidden">
${tarteaucitron.lang.title}
</div>
<div id="tarteaucitronPremium"></div>
<dialog id="consent-modal" class="fr-modal" role="dialog" aria-labelledby="fr-consent-modal-title">
<div id="tarteaucitronBack" aria-hidden="true" aria-controls="consent-modal"></div>
<div class="fr-container fr-container--fluid fr-container-md">
<div class="fr-grid-row fr-grid-row--center">
<div class="fr-col-12 fr-col-md-10 fr-col-lg-8">
<div class="fr-modal__body">
<div class="fr-modal__header">
<button type="button" id="tarteaucitronClosePanel" class="fr-btn--close fr-btn" aria-controls="consent-modal" title="${
tarteaucitron.lang.close +
(tarteaucitron.reloadThePage
? ' (' +
tarteaucitron.lang
.reload +
')'
: '')
}">
${tarteaucitron.lang.close}
</button>
</div>
<div class="fr-modal__content">
<p class="fr-modal__title fr-h3" id="fr-consent-modal-title">
${tarteaucitron.lang.title}
</p>
<div class="fr-consent-manager">
<div class="fr-consent-service fr-consent-manager__header">
<fieldset class="fr-fieldset fr-fieldset--inline">
<legend id="finality-legend" class="fr-consent-service__title">
${
tarteaucitron
.lang
.disclaimer
? `${tarteaucitron.lang.disclaimer} `
: ''
}
${
tarteaucitron
.parameters
.privacyUrl !==
''
? `<a class="fr-link" id="tarteaucitronPrivacyUrlDialog" href="${tarteaucitron.parameters.privacyUrl}" title="${tarteaucitron.lang.privacyUrl}">${tarteaucitron.lang.privacyUrl}</a>`
: ''
}
${
tarteaucitron
.lang
.all !== ''
? `<p class="fr-mt-3w fr-mb-0">${tarteaucitron.lang.all}</p>`
: ''
}
</legend>
<div class="fr-consent-service__radios">
<div class="fr-radio-group">
<input type="radio" id="tarteaucitronAllAllowed" name="consent-all" class="tarteaucitronAllow">
<label class="fr-label" for="tarteaucitronAllAllowed">
${
tarteaucitron
.lang
.allowAll
}
</label>
</div>
<div class="fr-radio-group">
<input type="radio" id="tarteaucitronAllDenied" name="consent-all" class="tarteaucitronDeny">
<label class="fr-label" for="tarteaucitronAllDenied">
${
tarteaucitron
.lang
.denyAll
}
</label>
</div>
</div>
</fieldset>
</div>`;
if (tarteaucitron.parameters.mandatory == true) {
html += `
<div class="fr-consent-service">
<fieldset aria-labelledby="tarteaucitronServicesTitle_mandatory finality-mandatory-desc" role="group" class="fr-fieldset fr-fieldset--inline">
<legend id="tarteaucitronServicesTitle_mandatory" class="fr-consent-service__title">
${tarteaucitron.lang.mandatoryTitle}
</legend>`;
if (tarteaucitron.parameters.mandatoryCta == true) {
html += `<div class="fr-consent-service__radios" id="tarteaucitronServices_mandatory">
<div class="fr-radio-group">
<input disabled checked type="radio" class="tarteaucitronAllow" id="consent-finality-mandatory-accept" name="consent-finality-mandatory">
<label class="fr-label" for="consent-finality-mandatory-accept">
${tarteaucitron.lang.allow}
</label>
</div>
<div class="fr-radio-group">
<input disabled type="radio" class="tarteaucitronDeny" id="consent-finality-mandatory-refuse" name="consent-finality-mandatory">
<label class="fr-label" for="consent-finality-mandatory-refuse">
${tarteaucitron.lang.deny}
</label>
</div>
</div>`;
}
html += `
<p id="finality-mandatory-desc" class="fr-consent-service__desc">${tarteaucitron.lang.mandatoryText}</p>
</fieldset>
</div>`;
}
for (i = 0; i < cat.length; i += 1) {
html += `
<div class="fr-consent-service tarteaucitronHidden fr-hidden" id="tarteaucitronServicesTitle_${
cat[i]
}">
<fieldset aria-labelledby="finality-${
cat[i]
}-legend finality-${
cat[i]
}-desc" role="group" class="fr-fieldset fr-fieldset--inline">
<legend id="finality-${
cat[i]
}-legend" class="fr-consent-service__title fr-h4 fr-pb-0">
${
tarteaucitron
.parameters
.showDetailsOnClick
? '<button aria-describedby="finality-' +
cat[i] +
'-decription" aria-controls="tarteaucitronDetails' +
cat[i] +
'" type="button" class="fr-btn catToggleBtn" aria-expanded="false" data-cat="tarteaucitronDetails' +
cat[i] +
'">' +
tarteaucitron
.lang[
cat[i]
].title +
'</button>'
: tarteaucitron
.lang[
cat[i]
].title
}
${
!tarteaucitron
.parameters
.showDetailsOnClick &&
tarteaucitron
.lang[
cat[i]
].details
? `
<button class="fr-btn--tooltip fr-btn" aria-describedby="tooltip-modal-${
cat[i]
}" id="button-tooltip-${
cat[i]
}">
${
tarteaucitron
.lang
.cookieDetail
}
</button>
<span class="fr-tooltip fr-placement fr-text--regular" id="tooltip-modal-${
cat[i]
}" role="tooltip">
${
tarteaucitron
.lang[
cat[
i
]
]
.details
}
</span>`
: ''
}
</legend>`;
if (tarteaucitron.parameters.showDetailsOnClick) {
html += `
<div id="tarteaucitronDetails${
cat[i]
}" class="tarteaucitronDetails fr-collapse">
<p id="finality-${
cat[i]
}-desc" class="fr-consent-service__desc fr-mt-2w">
${
tarteaucitron
.lang[
cat[i]
].details
}
</p>
</div>
<div class="fr-consent-service__collapse fr-mt-1w">
<button class="fr-consent-service__collapse-btn" aria-expanded="false" aria-describedby="finality-${
cat[i]
}-legend" aria-controls="finality-${
cat[i]
}-collapse">${tarteaucitron.lang.cookieDetail}</button>
</div>`;
}
html += `
<div class="fr-mt-0 fr-consent-services${
tarteaucitron
.parameters
.showDetailsOnClick
? ' fr-collapse'
: ''
}" id="finality-${
cat[i]
}-collapse">
<div id="tarteaucitronServices_${
cat[i]
}"></div>
</div>
</fieldset>
</div>`;
}
html += `
<div id="tarteaucitronNoServicesTitle" class="tarteaucitronLine">
${tarteaucitron.lang.noServices}
</div>
</div>
</div>`;
html += `
<div class="tarteaucitronHidden tarteaucitron-spacer-20" id="tarteaucitronScrollbarChild"></div>`;
if (tarteaucitron.parameters.removeCredit === false) {
html += `<a class="tarteaucitronSelfLink" href="https://tarteaucitron.io/" rel="nofollow noreferrer noopener" target="_blank" title="tarteaucitron '${tarteaucitron.lang.newWindow}"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAAeCAYAAAAWwoEYAAADl0lEQVRoge1Y0W3bQAx9CjKARlC+9GVUmqDJBHEmiDyB6wkcTxBngtgTxJ0gzgQW4C/9aYOmE6g4lTQo+k6y3Rb94QOERNQd+cjj8XiGwWAwGAwGg8FgMBgMBoPB8F8RNRXe+whEKe7c36ZCAeCRxC9Rig2PUd8kPgAsoxSfQ3YAzAA8D/HwYYCb05kBKKO0teFkmbC1jlKsAnq/Abjn+QBqAIsoRS30ttwG/HNz1wH/XIxWTicLdvtW7xTAGEAMtP685CNsBTe2d/BLydfXAG57SEnMAST0zgYZSUCPk02bCvkJduIzuJzDLfPolbY+tLKmar+/8+IRePy4qdpE03qHuH8fipFb4N2+XdA3AJ/0vaQxt7s9FvkIS2XvtqnwM0rxpOQfbnE5G2LhTCmUO2fHIngOmcv+KG3HafDchB6ntwjYqenR2PqC7sOZ3E7FXHB0vqxoFyUyLh7OEH7LOGouvhhN3eIBeKXv0n5MsufdHqXcwYR5U2EbpV35lSspVPJmQj4TcgRK7jTg5IzmPUhhwM5a2WHUFCx+NgiDucmgh7idikLovHFlL0pxQ9xzX+IIP9Y6FrJsqhjlQpZRAkFVDCjZfcCHt6bqJDmuh5ylCWx0RVnk3oumaknqTH5sqrY0fBWyULaHUIgAgxb46MxV3DbieAhxOxUxjSuljig9lMQ/Bcfoi9BTEv9aLORSndVxYOH525sUDC6u2gWxcNzBNRxPanyh3ktKinOgy3WoxPbtUM0t6RkbQnzBnFPgi9GCOEubY9UffIryz9iKRe8s/FUfEWosJJGxagp85bpUO3VywQ46lOtAWfNxKwa4JXQ+628+bpxYGXXMzp5rXH401VEyXwIdowXFaKWSMFHvMTVmGnc+P3oXV2QOiBCfgex8QtcQCbcQE/H+eoHzrkFo1KM7zVO4jVVj5s6lRiWF7zyXyfRMc97J3tzj87mYqZ7E2YjzUct9GUi4tjHLR8dVkBLjQcuHFleWvQfRNEhFR7uX7pkctOwvZXsft7sAtyldEUIN2UTeLxnEfxKYswzdi88BdbZ8hifUoSMftQvP+muRwN6+Q3DeqqRExP9QmTtcheiHh0Ot1x2i2km1bP9pbufw5zZdyWsOrh7vQae5OZWbsMv30pi7cd/CKj3coPEVaCP4Zhx4eQWhOZ1Y9MTXGyP8/iGjEyfa1T4fO/4Lea9vBoPBYDAYDAaDwWAwGAwGwz8GgF8siXCCbrSRhgAAAABJRU5ErkJggg==" alt="tarteaucitron.io" /></a>`;
}
html += `
</div>
</div>
</div>
</div>
</dialog>`;
if (tarteaucitron.parameters.orientation === 'bottom') {
orientation = 'Bottom';
}
if (
tarteaucitron.parameters.orientation === 'middle' ||
tarteaucitron.parameters.orientation === 'popup'
) {
modalAttrs =
'role="dialog" aria-modal="true" aria-labelledby="tac_title"';
}
// That condition does not respect the DSFR, as 3 buttons should always be visible.
if (
tarteaucitron.parameters.highPrivacy &&
!tarteaucitron.parameters.AcceptAllCta
) {
html += `<div tabindex="-1" id="tarteaucitronAlertBig" class="fr-consent-banner" ${modalAttrs}>`;
html += `<p class="fr-h6">${tarteaucitron.lang.alertBigPrivacy.title}</p>`;
html += `<div id="tarteaucitronDisclaimerAlert" class="fr-consent-banner__content"><p class="fr-text--sm">${tarteaucitron.lang.alertBigPrivacy.content}</p></div>`;
html += `<ul class="fr-consent-banner__buttons fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-sm">`;
html += `<li><button class="fr-btn fr-btn--secondary" data-fr-opened="false" aria-controls="consent-modal" aria-label="${tarteaucitron.lang.personalize} ${tarteaucitron.lang.modalWindow}" title="${tarteaucitron.lang.personalize} ${tarteaucitron.lang.modalWindow}" type="button" id="tarteaucitronPersonalize">${tarteaucitron.lang.personalize}</button></li>`;
html += '</ul></div>';
} else {
html += `<div tabindex="-1" id="tarteaucitronAlertBig" class="fr-consent-banner" ${modalAttrs}>`;
html += `<p class="fr-h6">${tarteaucitron.lang.alertBigPrivacy.title}</p>`;
html += `<div id="tarteaucitronDisclaimerAlert" class="fr-consent-banner__content"><p class="fr-text--sm">${
tarteaucitron.parameters.highPrivacy
? tarteaucitron.lang.alertBigPrivacy.content
: tarteaucitron.lang.alertBigClick +
tarteaucitron.lang.alertBig
}</p></div>`;
html += `<ul class="fr-consent-banner__buttons fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-sm">`;
html += `<li><button class="fr-btn tarteaucitronCTAButton tarteaucitronAllow" type="button" id="tarteaucitronPersonalize2" aria-label="${tarteaucitron.lang.acceptAll}" title="${tarteaucitron.lang.acceptAll}">${tarteaucitron.lang.acceptAll}</button></li>`;
if (tarteaucitron.parameters.DenyAllCta) {
const denyText = tarteaucitron.reloadThePage
? `${tarteaucitron.lang.denyAll} (${tarteaucitron.lang.reload})`
: tarteaucitron.lang.denyAll;
html += `<li><button class="fr-btn tarteaucitronCTAButton tarteaucitronDeny" type="button" id="tarteaucitronAllDenied2" aria-label="${denyText}" title="${denyText}">${tarteaucitron.lang.denyAll}</button></li>`;
}
html += `<li><button class="fr-btn fr-btn--secondary" aria-label="${tarteaucitron.lang.personalize} ${tarteaucitron.lang.modalWindow}" data-link="#tarteaucitron" aria-controls="consent-modal" type="button" id="tarteaucitronCloseAlert" data-fr-opened="false" title="${tarteaucitron.lang.personalize} ${tarteaucitron.lang.modalWindow}">
${tarteaucitron.lang.personalize}
</button></li>`;
html += '</ul></div>';
html += '<div id="tarteaucitronPercentage"></div>';
}
if (tarteaucitron.parameters.showIcon === true) {
html +=
'<div id="tarteaucitronIcon" class="tarteaucitronIcon' +
tarteaucitron.parameters.iconPosition +
'" style="display: block">';
html +=
' <button type="button" id="tarteaucitronManager" aria-label="' +
tarteaucitron.lang.icon +
' ' +
tarteaucitron.lang.modalWindow +
'" title="' +
tarteaucitron.lang.icon +
' ' +
tarteaucitron.lang.modalWindow +
'">';
html +=
' <img src="' +
(tarteaucitron.parameters.iconSrc
? tarteaucitron.parameters.iconSrc
: 'data:image/png;base64,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') +
'" alt="' +
tarteaucitron.lang.icon +
' ' +
tarteaucitron.lang.modalWindow +
'" title="' +
tarteaucitron.lang.icon +
' ' +
tarteaucitron.lang.modalWindow +
'">';
html += ' </button>';
html += '</div>';
}
if (tarteaucitron.parameters.showAlertSmall === true) {
html +=
'<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall' +
orientation +
'">';
html +=
' <button type="button" id="tarteaucitronManager" aria-label="' +
tarteaucitron.lang.alertSmall +
' ' +
tarteaucitron.lang.modalWindow +
'" title="' +
tarteaucitron.lang.alertSmall +
' ' +
tarteaucitron.lang.modalWindow +
'">';
html += ' ' + tarteaucitron.lang.alertSmall;
html += ' <span id="tarteaucitronDot">';
html +=
' <span id="tarteaucitronDotGreen"></span>';
html +=
' <span id="tarteaucitronDotYellow"></span>';
html += ' <span id="tarteaucitronDotRed"></span>';
html += ' </span>';
if (tarteaucitron.parameters.cookieslist === true) {
html += ' </button><!-- @whitespace';
html +=
' --><button type="button" id="tarteaucitronCookiesNumber" aria-expanded="false" aria-controls="tarteaucitronCookiesListContainer">0</button>';
html +=
' <div id="tarteaucitronCookiesListContainer">';
if (tarteaucitron.reloadThePage) {
html +=
' <button type="button" id="tarteaucitronClosePanelCookie" aria-label="' +
tarteaucitron.lang.close +
' (' +
tarteaucitron.lang.reload +
')" title="' +
tarteaucitron.lang.close +
' (' +
tarteaucitron.lang.reload +
')">';
} else {
html +=
' <button type="button" id="tarteaucitronClosePanelCookie">';
}
html += ' ' + tarteaucitron.lang.close;
html += ' </button>';
html +=
' <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">';
html +=
' <span class="tarteaucitronH2" role="heading" aria-level="2" id="tarteaucitronCookiesNumberBis">0 cookie</span>';
html += ' </div>';
html +=
' <div id="tarteaucitronCookiesList"></div>';
html += ' </div>';
} else {
html += ' </div>';
}
html += '</div>';
}
tarteaucitron.addInternalScript(
tarteaucitron.cdn +
'advertising' +
(useMinifiedJS ? '.min' : '') +
'.js',
'',
function () {
if (
tarteaucitronNoAdBlocker === true ||
tarteaucitron.parameters.adblocker === false
) {
// create a wrapper container at the same level than tarteaucitron so we can add an aria-hidden when tarteaucitron is opened
/*var wrapper = document.createElement('div');
wrapper.id = "tarteaucitronContentWrapper";
while (document.body.firstChild)
{
wrapper.appendChild(document.body.firstChild);
}
// Append the wrapper to the body
document.body.appendChild(wrapper);*/
div.id = 'tarteaucitronRoot';
if (
tarteaucitron.parameters.bodyPosition === 'top'
) {
// Prepend tarteaucitron: #tarteaucitronRoot first-child of the body for better accessibility
var bodyFirstChild = body.firstChild;
body.insertBefore(div, bodyFirstChild);
} else {
// Append tarteaucitron: #tarteaucitronRoot last-child of the body
body.appendChild(div, body);
}
div.setAttribute('data-nosnippet', 'true');
div.setAttribute('lang', language);
div.setAttribute('role', 'region');
div.setAttribute('aria-labelledby', 'tac_title');
div.innerHTML = html;
//ie compatibility
var tacRootAvailableEvent;
if (typeof Event === 'function') {
tacRootAvailableEvent = new Event(
'tac.root_available'
);
} else if (
typeof document.createEvent === 'function'
) {
tacRootAvailableEvent =
document.createEvent('Event');
tacRootAvailableEvent.initEvent(
'tac.root_available',
true,
true
);
}
//end ie compatibility
if (typeof window.dispatchEvent === 'function') {
window.dispatchEvent(tacRootAvailableEvent);
}
if (tarteaucitron.job !== undefined) {
tarteaucitron.job = tarteaucitron.cleanArray(
tarteaucitron.job
);
for (
index = 0;
index < tarteauc