TP_JO2024/home/dist/analytics/analytics.nomodule.js
2024-03-27 17:19:37 +01:00

5670 lines
180 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*! DSFR v1.11.2 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
(function () {
'use strict';
var config = {
prefix: 'fr',
namespace: 'dsfr',
organisation: '@gouvfr',
version: '1.11.2'
};
var api = window[config.namespace];
var patch = {
namespace: 'a4e35ba2a938ba9d007689dbf3f46acbb9807869'
};
var Collection = {
MANUAL: 'manual',
LOAD: 'load',
FULL: 'full',
HASH: 'hash'
};
var key = '_EA_';
var DISABLED = key + "disabled";
var TOGGLE = key + "toggle";
var Opt = function Opt () {
this._configure();
};
var prototypeAccessors$e = { isDisabled: { configurable: true } };
Opt.prototype._configure = function _configure () {
var scope = this;
window[DISABLED] = function () { return scope.isDisabled; };
window[TOGGLE] = this.toggle.bind(this);
};
prototypeAccessors$e.isDisabled.get = function () {
return localStorage.getItem(key);
};
Opt.prototype.toggle = function toggle () {
if (this.isDisabled) { this.enable(); }
else { this.disable(); }
};
Opt.prototype.enable = function enable () {
if (localStorage.getItem(key)) {
localStorage.removeItem(key);
}
};
Opt.prototype.disable = function disable () {
localStorage.setItem(key, '1');
};
Object.defineProperties( Opt.prototype, prototypeAccessors$e );
var opt = new Opt();
var PUSH = 'EA_push';
var Init = function Init (domain) {
var this$1$1 = this;
this._domain = domain;
this._isLoaded = false;
this._promise = new Promise(function (resolve, reject) {
this$1$1._resolve = resolve;
this$1$1._reject = reject;
});
};
var prototypeAccessors$d = { id: { configurable: true },store: { configurable: true } };
prototypeAccessors$d.id.get = function () {
return this._id;
};
prototypeAccessors$d.store.get = function () {
return this._store;
};
Init.prototype.configure = function configure () {
this.init();
return this._promise;
};
Init.prototype.init = function init () {
var this$1$1 = this;
var bit = 5381;
for (var i = this._domain.length - 1; i > 0; i--) { bit = (bit * 33) ^ this._domain.charCodeAt(i); }
bit >>>= 0;
this._id = "_EA_" + bit;
this._store = [];
this._store.eah = this._domain;
window[this._id] = this._store;
if (!window[PUSH]) { window[PUSH] = function () {
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return this$1$1.store.push(args);
}; }
if (opt.isDisabled) {
api.inspector.warn('User opted out, eulerian is disabled');
this._reject('User opted out, eulerian is disabled');
} else { this.load(); }
};
Init.prototype.load = function load () {
var stamp = new Date() / 1E7 | 0;
var offset = stamp % 26;
var key = String.fromCharCode(97 + offset, 122 - offset, 65 + offset) + (stamp % 1E3);
this._script = document.createElement('script');
this._script.ea = this.id;
this._script.async = true;
this._script.addEventListener('load', this.loaded.bind(this));
this._script.addEventListener('error', this.error.bind(this));
this._script.src = "//" + (this._domain) + "/" + key + ".js?2";
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(this._script, node);
};
Init.prototype.error = function error () {
api.inspector.error('unable to load Eulerian script file. the domain declared in your configuration must match the domain provided by the Eulerian interface (tag creation)');
this._reject('eulerian script loading error');
};
Init.prototype.loaded = function loaded () {
if (this._isLoaded) { return; }
this._isLoaded = true;
this._resolve();
};
Object.defineProperties( Init.prototype, prototypeAccessors$d );
/*
(function(e, a) {
var i = e.length,
y = 5381,
k = 'script',
s = window,
v = document,
o = v.createElement(k);
for (; i;) {
i -= 1;
y = (y * 33) ^ e.charCodeAt(i)
}
y = '_EA_' + (y >>>= 0);
(function(e, a, s, y) {
s[a] = s[a] || function() {
(s[y] = s[y] || []).push(arguments);
s[y].eah = e;
};
}(e, a, s, y));
i = new Date / 1E7 | 0;
o.ea = y;
y = i % 26;
o.async = 1;
o.src = '//' + e + '/' + String.fromCharCode(97 + y, 122 - y, 65 + y) + (i % 1E3) + '.js?2';
s = v.getElementsByTagName(k)[0];
s.parentNode.insertBefore(o, s);
})
('mon.domainedetracking.com', 'EA_push');
*/
/*
(function(e, a) {
var i = e.length,
y = 5381,
k = 'script',
z = '_EA_',
zd = z + 'disabled',
s = window,
v = document,
o = v.createElement(k),
l = s.localStorage;
for (; i;) {
i -= 1;
y = (y * 33) ^ e.charCodeAt(i)
}
y = z + (y >>>= 0);
(function(e, a, s, y, z, zd, l) {
s[a] = s[a] || function() {
(s[y] = s[y] || []).push(arguments);
s[y].eah = e;
};
s[zd] = function() {
return l.getItem(z);
};
s[z + 'toggle'] = function() {
(s[zd]()) ? l.removeItem(z): l.setItem(z, 1);
}
}(e, a, s, y, z, zd, l));
if (!s[zd]()) {
i = new Date / 1E7 | 0;
o.ea = y;
y = i % 26;
o.async = 1;
o.src = '//' + e + '/' + String.fromCharCode(97 + y, 122 - y, 65 + y) + (i % 1E3) + '.js?2';
s = v.getElementsByTagName(k)[0];
s.parentNode.insertBefore(o, s);
}
})('mon.domainedetracking.com', 'EA_push');
*/
var State = {
UNKNOWN: -1,
CONFIGURING: 0,
CONFIGURED: 1,
INITIATED: 2,
READY: 3
};
var TarteAuCitronIntegration = function TarteAuCitronIntegration (config) {
var this$1$1 = this;
this._config = config;
this._state = State.UNKNOWN;
this._promise = new Promise(function (resolve, reject) {
this$1$1._resolve = resolve;
this$1$1._reject = reject;
});
};
TarteAuCitronIntegration.prototype.configure = function configure () {
if (this._state >= State.CONFIGURED) { return this._promise; }
if (this._state === State.UNKNOWN) {
api.inspector.info('analytics configures tarteaucitron');
this._state = State.CONFIGURING;
}
var tarteaucitron = window.tarteaucitron;
if (!tarteaucitron || !tarteaucitron.services) {
window.requestAnimationFrame(this.configure.bind(this));
return;
}
this._state = State.CONFIGURED;
var init = this.init.bind(this);
var data = {
key: 'eulerian',
type: 'analytic',
name: 'Eulerian Analytics',
needConsent: true,
cookies: ['etuix'],
uri: 'https://eulerian.com/vie-privee',
js: init,
fallback: function () { tarteaucitron.services.eulerian.js(); }
};
tarteaucitron.services.eulerian = data;
if (!tarteaucitron.job) { tarteaucitron.job = []; }
tarteaucitron.job.push('eulerian');
return this._promise;
};
TarteAuCitronIntegration.prototype.init = function init () {
if (this._state >= State.INITIATED) { return; }
this._state = State.INITIATED;
window.__eaGenericCmpApi = this.integrate.bind(this);
var update = this.update.bind(this);
window.addEventListener('tac.close_alert', update);
window.addEventListener('tac.close_panel', update);
};
TarteAuCitronIntegration.prototype.integrate = function integrate (cmpApi) {
if (this._state >= State.READY) { return; }
this._state = State.READY;
this._cmpApi = cmpApi;
api.inspector.info('analytics has integrated tarteaucitron');
this._resolve();
this.update();
};
TarteAuCitronIntegration.prototype.update = function update () {
if (this._state < State.READY) { return; }
this._cmpApi('tac', window.tarteaucitron, 1);
};
var ConsentManagerPlatform = function ConsentManagerPlatform (config) {
this._config = config;
if (config) {
switch (config.id) {
case 'tarteaucitron':
this.integrateTarteAuCitron();
break;
}
}
};
ConsentManagerPlatform.prototype.integrateTarteAuCitron = function integrateTarteAuCitron () {
this._tac = new TarteAuCitronIntegration(this._config);
return this._tac.configure();
};
ConsentManagerPlatform.prototype.optin = function optin () {
};
var push = function (type, layer) {
if (typeof window.EA_push !== 'function') {
api.inspector.warn('Analytics datalayer not sent, Eulerian API isn\'t yet avalaible');
return;
}
api.inspector.info('analytics', type, layer);
window.EA_push(type, layer);
};
var PushType = {
COLLECTOR: 'collector',
ACTION: 'action',
ACTION_PARAMETER: 'actionparam'
};
var Renderer = function Renderer () {
this._renderables = [];
this._rendering = this.render.bind(this);
requestAnimationFrame(this._rendering);
};
Renderer.prototype.add = function add (renderable) {
var index = this._renderables.indexOf(renderable);
if (index === -1) { this._renderables.push(renderable); }
};
Renderer.prototype.remove = function remove (renderable) {
var index = this._renderables.indexOf(renderable);
if (index > -1) { this._renderables.splice(index, 1); }
};
Renderer.prototype.render = function render () {
this._renderables.forEach(function (renderable) { return renderable.render(); });
requestAnimationFrame(this._rendering);
};
var renderer = new Renderer();
var SLICE = 80;
var Queue = function Queue () {
this._startingActions = [];
this._endingActions = [];
this._handlingVisibilityChange = this._handleVisibilityChange.bind(this);
this._handlingEnd = this._handleEnd.bind(this);
this._isStarted = false;
this._isListening = false;
this.reset();
};
Queue.prototype.setCollector = function setCollector (collector) {
this._collector = collector;
};
Queue.prototype.reset = function reset (ending) {
if ( ending === void 0 ) ending = false;
this._type = PushType.ACTION;
if (!ending) { this._startingActions.length = 0; }
this._endingActions.length = 0;
this._count = 0;
this._delay = -1;
this._isRequested = false;
this._unlisten();
};
Queue.prototype.start = function start () {
if (this._isStarted) { return; }
this._isStarted = true;
renderer.add(this);
};
Queue.prototype.collect = function collect () {
this._type = PushType.COLLECTOR;
this._request();
};
Queue.prototype.appendStartingAction = function appendStartingAction (action, data) {
if (!this._collector.isActionEnabled && !action.isForced) { return; }
if (!action || this._startingActions.some(function (queued) { return queued.test(action); })) {
api.inspector.log('appendStartingAction exists or null', action);
return;
}
var queued = new QueuedAction(action, data);
this._startingActions.push(queued);
this._request();
};
Queue.prototype.appendEndingAction = function appendEndingAction (action, data) {
if (!this._collector.isActionEnabled && !action.isForced) { return; }
if (!action || this._endingActions.some(function (queued) { return queued.test(action); })) {
api.inspector.log('appendEndingAction exists or null', action);
return;
}
var queued = new QueuedAction(action, data);
this._endingActions.push(queued);
this._request();
};
Queue.prototype._request = function _request () {
this._listen();
this._isRequested = true;
this._delay = 4;
};
Queue.prototype._listen = function _listen () {
if (this._isListening) { return; }
this._isListening = true;
document.addEventListener('visibilitychange', this._handlingVisibilityChange);
document.addEventListener('unload', this._handlingEnd);
document.addEventListener('beforeunload', this._handlingEnd);
document.addEventListener('pagehide', this._handlingEnd);
};
Queue.prototype._unlisten = function _unlisten () {
if (!this._isListening) { return; }
this._isListening = false;
document.removeEventListener('visibilitychange', this._handlingVisibilityChange);
document.removeEventListener('unload', this._handlingEnd);
document.removeEventListener('beforeunload', this._handlingEnd);
document.removeEventListener('pagehide', this._handlingEnd);
};
Queue.prototype._handleVisibilityChange = function _handleVisibilityChange (e) {
if (document.visibilityState === 'hidden') { this.send(); }
};
Queue.prototype._handleEnd = function _handleEnd () {
this.send();
};
Queue.prototype.render = function render () {
if (this._delay <= -1) { return; }
this._delay--;
this._count++;
switch (true) {
case this._count > 20:
case this._delay === 0:
this.send();
break;
}
};
Queue.prototype.send = function send (ending) {
if ( ending === void 0 ) ending = false;
if (!this._isRequested) { return; }
var actionLayers = [];
if (!ending) { actionLayers.push.apply(actionLayers, this._startingActions.map(function (queued) { return queued.start(); }).filter(function (layer) { return layer.length > 0; })); }
actionLayers.push.apply(actionLayers, this._endingActions.map(function (queued) { return queued.end(); }).filter(function (layer) { return layer.length > 0; }));
var length = ((actionLayers.length / SLICE) + 1) | 0;
var slices = [];
for (var i = 0; i < length; i++) {
var slice = actionLayers.slice(i * SLICE, (i + 1) * SLICE);
slices.push(slice.flat());
}
if (this._type === PushType.COLLECTOR && this._collector.isCollecting) {
var layer = this._collector.layer;
if (slices.length > 0) {
var slice$1 = slices.splice(0, 1)[0];
if (slice$1.length > 0) { layer.push.apply(layer, slice$1); }
}
layer.flat();
if (layer.length > 0) { push(PushType.COLLECTOR, layer); }
}
if (slices.length > 0) {
for (var i$1 = 0; i$1 < slices.length; i$1++) {
var slice$2 = slices[i$1];
if (slice$2.length > 0) { push(PushType.ACTION, slice$2); }
}
}
this.reset(ending);
};
var QueuedAction = function QueuedAction (action, data) {
this._action = action;
this._data = data;
};
QueuedAction.prototype.test = function test (action) {
return this._action === action;
};
QueuedAction.prototype.start = function start () {
return this._action.start(this._data);
};
QueuedAction.prototype.end = function end () {
return this._action.end(this._data);
};
var queue = new Queue();
var Debug = function Debug () {};
var prototypeAccessors$c = { debugger: { configurable: true },isActive: { configurable: true } };
prototypeAccessors$c.debugger.get = function () {
return window._oEa;
};
prototypeAccessors$c.isActive.get = function () {
if (!this.debugger) { return false; }
return this.debugger._dbg === '1';
};
prototypeAccessors$c.isActive.set = function (value) {
if (!this.debugger || this.isActive === value) { return; }
this.debugger.debug(value ? 1 : 0);
};
Object.defineProperties( Debug.prototype, prototypeAccessors$c );
var debug = new Debug();
var Status = {
CONNECTED: {
id: 'connected',
value: 'connecté',
isConnected: true,
isDefault: true
},
ANONYMOUS: {
id: 'anonymous',
value: 'anonyme',
isConnected: false,
isDefault: true
},
GUEST: {
id: 'guest',
value: 'invité',
isConnected: false
}
};
var Type$2 = {
INDIVIDUAL: {
id: 'individual',
value: 'part'
},
PROFESSIONNAL: {
id: 'professionnal',
value: 'pro'
}
};
/* '["\'<>*$&~`|\\\\?^~]'; */
var RESTRICTED = {
'0x0022': '',
'0x0024': '',
'0x0026': '',
'0x0027': '',
'0x002a': '',
'0x002c': '',
'0x003c': '',
'0x003e': '',
'0x003f': '',
'0x005c': '',
'0x005e': '',
'0x0060': '',
'0x007c': '',
'0x007e': ''
};
// import TABLE from './unicode-table';
var charCodeHex = function (char) {
var code = char.charCodeAt(0).toString(16);
return '0x0000'.slice(0, -code.length) + code;
};
var normalize = function (text) {
if (!text) { return text; }
// text = [...text].map(char => TABLE[charCodeHex(char)] || char).join('');
text = [].concat( text ).map(function (char) { return RESTRICTED[charCodeHex(char)] || char; }).join('');
text = text.replace(/\s+/g, ' ').replace(/\s/g, '_');
text = text.toLowerCase();
return text;
};
var validateString = function (value, name, allowNull) {
if ( allowNull === void 0 ) allowNull = true;
switch (true) {
case typeof value === 'number':
return ("" + value);
case typeof value === 'string':
return value;
case value === undefined && allowNull:
case value === null && allowNull:
return '';
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting a String"));
return null;
};
var validateNumber = function (value, name, allowNull) {
if ( allowNull === void 0 ) allowNull = true;
switch (true) {
case !isNaN(value):
return value;
case typeof value === 'string' && !isNaN(Number(value)):
return Number(value);
case value === undefined && allowNull:
case value === null && allowNull:
return -1;
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting a Number"));
return null;
};
var validateBoolean = function (value, name) {
switch (true) {
case typeof value === 'boolean':
return value;
case typeof value === 'string' && value.toLowerCase() === 'true':
case value === '1':
case value === 1:
return true;
case typeof value === 'string' && value.toLowerCase() === 'false':
case value === '0':
case value === 0:
return false;
case value === undefined:
case value === null:
return value;
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting a Boolean"));
return null;
};
var validateLang = function (value, name, allowNull) {
if ( allowNull === void 0 ) allowNull = true;
switch (true) {
case typeof value === 'string' && /^[A-Za-z]{2}$|^[A-Za-z]{2}[-_]/.test(value):
return value.split(/[-_]/)[0].toLowerCase();
case value === undefined && allowNull:
case value === null && allowNull:
return '';
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting language as a String following ISO 639-1 format"));
return null;
};
var validateGeography = function (value, name, allowNull) {
if ( allowNull === void 0 ) allowNull = true;
switch (true) {
case typeof value === 'string':
if (!/^FR-[A-Z0-9]{2,3}$/.test(value)) { api.inspector.warn(("value '" + value + "' set at analytics." + name + " with wrong format. Geographic location should be a String following ISO 3166-2:FR format")); }
return value;
case value === undefined && allowNull:
case value === null && allowNull:
return '';
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting geographic location as a String following ISO 3166-2:FR format"));
return null;
};
var normaliseISODate = function (date) { return date.toISOString().split('T')[0]; };
var validateDate = function (value, name, allowNull) {
if ( allowNull === void 0 ) allowNull = true;
switch (true) {
case value instanceof Date:
return normaliseISODate(value);
case typeof value === 'string': {
var date = new Date(value);
if (date.toString() !== 'Invalid Date') { return normaliseISODate(date); }
break;
}
case value === undefined && allowNull:
case value === null && allowNull:
return null;
}
api.inspector.warn(("unexpected value '" + value + "' set at analytics." + name + ". Expecting a Date"));
return null;
};
var User = function User (config) {
this._config = config || {};
};
var prototypeAccessors$b = { uid: { configurable: true },email: { configurable: true },isNew: { configurable: true },status: { configurable: true },profile: { configurable: true },language: { configurable: true },type: { configurable: true },layer: { configurable: true } };
User.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this._isConnected = false;
this.status = Status.ANONYMOUS;
if (!clear && this._config.connect) { this.connect(this._config.connect.uid, this._config.connect.email, this._config.connect.isNew); }
else {
this._uid = undefined;
this._email = undefined;
this._isNew = false;
}
this.profile = clear ? undefined : this._config.profile;
this.language = clear ? undefined : this._config.language;
this.type = clear ? undefined : this._config.type;
};
User.prototype.connect = function connect (uid, email, isNew) {
if ( isNew === void 0 ) isNew = false;
this._uid = validateString(uid, 'user.uid');
if (/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]{2,}@[a-zA-Z0-9-]{2,}\.[a-zA-Z]{2,}$/.test(email)) { api.inspector.warn('Please check analytics.user.email is properly encrypted '); }
this._email = validateString(email, 'user.email');
this._isNew = validateBoolean(isNew);
this._isConnected = true;
this.status = Status.CONNECTED;
};
prototypeAccessors$b.uid.get = function () {
return this._uid;
};
prototypeAccessors$b.email.get = function () {
return this._email;
};
prototypeAccessors$b.isNew.get = function () {
return this._isNew;
};
prototypeAccessors$b.status.set = function (id) {
var this$1$1 = this;
var stati = Object.values(Status).filter(function (status) { return status.isConnected === this$1$1._isConnected; });
this._status = stati.filter(function (status) { return status.id === id || status.value === id; })[0] || stati.filter(function (status) { return status.isDefault; })[0];
};
prototypeAccessors$b.status.get = function () {
return this._status.id;
};
prototypeAccessors$b.profile.set = function (value) {
var valid = validateString(value, 'user.profile');
if (valid !== null) { this._profile = valid; }
};
prototypeAccessors$b.profile.get = function () {
return this._profile.id;
};
prototypeAccessors$b.language.set = function (value) {
var valid = validateLang(value, 'user.language');
if (valid !== null) { this._language = valid; }
};
prototypeAccessors$b.language.get = function () {
return this._language || navigator.language;
};
prototypeAccessors$b.type.set = function (id) {
this._type = Object.values(Type$2).filter(function (type) { return type.id === id || type.value === id; })[0];
};
prototypeAccessors$b.type.get = function () {
return this._type.id;
};
prototypeAccessors$b.layer.get = function () {
var layer = [];
if (this.uid) { layer.push('uid', normalize(this.uid)); }
if (this.email) { layer.push('email', normalize(this.email)); }
if (this.isNew) { layer.push('newcustomer', '1'); }
if (this.language) { layer.push('user_language', this.language); }
layer.push('user_login_status', this._status.value);
if (this._profile) { layer.push('profile', this._profile); }
if (this._type) { layer.push('user_type', this._type.value); }
return layer;
};
Object.defineProperties( User.prototype, prototypeAccessors$b );
User.Status = Status;
User.Type = Type$2;
var Environment = {
DEVELOPMENT: {
id: 'development',
value: 'dev'
},
STAGE: {
id: 'stage',
value: 'stage'
},
PRODUCTION: {
id: 'production',
value: 'prod'
}
};
var Site = function Site (config) {
this._config = config || {};
};
var prototypeAccessors$a = { environment: { configurable: true },entity: { configurable: true },language: { configurable: true },target: { configurable: true },type: { configurable: true },region: { configurable: true },department: { configurable: true },version: { configurable: true },api: { configurable: true },layer: { configurable: true } };
Site.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this.environment = clear ? Environment.DEVELOPMENT.id : this._config.environment;
this.entity = clear ? undefined : this._config.entity;
this.language = clear ? undefined : this._config.language;
this.target = clear ? undefined : this._config.target;
this.type = clear ? undefined : this._config.type;
this.region = clear ? undefined : this._config.region;
this.department = clear ? undefined : this._config.department;
this.version = clear ? undefined : this._config.version;
this._api = api.version;
};
prototypeAccessors$a.environment.set = function (value) {
switch (value) {
case Environment.PRODUCTION.id:
case Environment.PRODUCTION.value:
this._environment = Environment.PRODUCTION;
break;
case Environment.STAGE.id:
case Environment.STAGE.value:
this._environment = Environment.STAGE;
break;
case Environment.DEVELOPMENT.id:
case Environment.DEVELOPMENT.value:
this._environment = Environment.DEVELOPMENT;
break;
default:
this._environment = Environment.DEVELOPMENT;
}
};
prototypeAccessors$a.environment.get = function () {
return this._environment ? this._environment.id : Environment.DEVELOPMENT.id;
};
prototypeAccessors$a.entity.set = function (value) {
var valid = validateString(value, 'site.entity');
if (valid !== null) { this._entity = valid; }
};
prototypeAccessors$a.entity.get = function () {
return this._entity;
};
prototypeAccessors$a.language.set = function (value) {
var valid = validateLang(value, 'site.language');
if (valid !== null) { this._language = valid; }
};
prototypeAccessors$a.language.get = function () {
return this._language || document.documentElement.lang;
};
prototypeAccessors$a.target.set = function (value) {
var valid = validateString(value, 'site.target');
if (valid !== null) { this._target = valid; }
};
prototypeAccessors$a.target.get = function () {
return this._target;
};
prototypeAccessors$a.type.set = function (value) {
var valid = validateString(value, 'site.type');
if (valid !== null) { this._type = valid; }
};
prototypeAccessors$a.type.get = function () {
return this._type;
};
prototypeAccessors$a.region.set = function (value) {
var valid = validateGeography(value, 'site.region');
if (valid !== null) { this._region = valid; }
};
prototypeAccessors$a.region.get = function () {
return this._region;
};
prototypeAccessors$a.department.set = function (value) {
var valid = validateGeography(value, 'site.department');
if (valid !== null) { this._department = valid; }
};
prototypeAccessors$a.department.get = function () {
return this._department;
};
prototypeAccessors$a.version.set = function (value) {
var valid = validateString(value, 'site.version');
if (valid !== null) { this._version = valid; }
};
prototypeAccessors$a.version.get = function () {
return this._version;
};
prototypeAccessors$a.api.get = function () {
return this._api;
};
prototypeAccessors$a.layer.get = function () {
var layer = [];
layer.push('site_environment', this._environment.value);
if (this.entity) { layer.push('site_entity', normalize(this.entity)); }
else { api.inspector.warn('entity is required in analytics.site'); }
if (this.language) { layer.push('site_language', this.language); }
if (this.target) { layer.push('site_target', normalize(this.target)); }
if (this.type) { layer.push('site_type', normalize(this.type)); }
if (this.region) { layer.push('site_region', this.region); }
if (this.department) { layer.push('site_department', this.department); }
if (this.version) { layer.push('site_version', this.version); }
if (this.api) { layer.push('api_version', this.api); }
return layer;
};
Object.defineProperties( Site.prototype, prototypeAccessors$a );
Site.Environment = Environment;
var Inventory = {
accordion: api.internals.ns.selector('accordion'),
alert: api.internals.ns.selector('alert'),
badge: api.internals.ns.selector('badge'),
breadcrumb: api.internals.ns.selector('breadcrumb'),
button: api.internals.ns.selector('btn'),
callout: api.internals.ns.selector('callout'),
card: api.internals.ns.selector('card'),
checkbox: api.internals.ns.selector('checkbox-group'),
connect: api.internals.ns.selector('connect'),
consent: api.internals.ns.selector('consent-banner'),
content: api.internals.ns.selector('content-media'),
download: api.internals.ns.selector('download'),
follow: api.internals.ns.selector('follow'),
footer: api.internals.ns.selector('footer'),
header: api.internals.ns.selector('header'),
highlight: api.internals.ns.selector('highlight'),
input: api.internals.ns.selector('input-group'),
link: api.internals.ns.selector('link'),
modal: api.internals.ns.selector('modal'),
navigation: api.internals.ns.selector('nav'),
notice: api.internals.ns.selector('notice'),
pagination: api.internals.ns.selector('pagination'),
quote: api.internals.ns.selector('quote'),
radio: api.internals.ns.selector('radio-group'),
search: api.internals.ns.selector('search-bar'),
select: api.internals.ns.selector('select'),
share: api.internals.ns.selector('share'),
sidemenu: api.internals.ns.selector('sidemenu'),
stepper: api.internals.ns.selector('stepper'),
summary: api.internals.ns.selector('summary'),
tab: api.internals.ns.selector('tabs'),
table: api.internals.ns.selector('table'),
tag: api.internals.ns.selector('tag'),
tile: api.internals.ns.selector('tile'),
toggle: api.internals.ns.selector('toggle'),
tooltip: api.internals.ns.selector('tooltip'),
transcription: api.internals.ns.selector('transcription'),
translate: api.internals.ns.selector('translate'),
upload: api.internals.ns.selector('upload-group')
};
var CollectionState = {
COLLECTABLE: 'collectable',
COLLECTING: 'collecting',
COLLECTED: 'collected'
};
var Page = function Page (config) {
this._config = config || {};
this._state = CollectionState.COLLECTABLE;
};
var prototypeAccessors$9 = { isCollecting: { configurable: true },path: { configurable: true },referrer: { configurable: true },title: { configurable: true },id: { configurable: true },author: { configurable: true },date: { configurable: true },tags: { configurable: true },name: { configurable: true },labels: { configurable: true },categories: { configurable: true },isError: { configurable: true },template: { configurable: true },segment: { configurable: true },group: { configurable: true },subtemplate: { configurable: true },theme: { configurable: true },subtheme: { configurable: true },related: { configurable: true },depth: { configurable: true },current: { configurable: true },total: { configurable: true },filters: { configurable: true },layer: { configurable: true } };
Page.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this.path = clear ? '' : this._config.path;
this.referrer = clear ? '' : this._config.referrer;
this.title = clear ? '' : this._config.title;
this.name = clear ? '' : this._config.name;
this.id = clear ? '' : this._config.id;
this.author = clear ? '' : this._config.author;
this.date = clear ? '' : this._config.date;
this._labels = clear || !this._config.labels ? ['', '', '', '', ''] : this._config.labels;
this._labels.length = 5;
this._tags = clear || !this._config.tags ? [] : this._config.tags;
this._categories = clear || !this._config.categories ? ['', '', ''] : this._config.categories;
this.isError = !clear && this._config.isError;
this.template = clear ? '' : this._config.template;
this.group = clear ? '' : this._config.group;
this.segment = clear ? '' : this._config.segment;
this.subtemplate = clear ? '' : this._config.subtemplate;
this.theme = clear ? '' : this._config.theme;
this.subtheme = clear ? '' : this._config.subtheme;
this.related = clear ? '' : this._config.related;
this.depth = clear || isNaN(this._config.depth) ? 0 : this._config.depth;
this.current = clear || isNaN(this._config.current) ? -1 : this._config.current;
this.total = clear || isNaN(this._config.total) ? -1 : this._config.total;
this._filters = clear || !this._config.filters ? [] : this._config.filters;
};
Page.prototype.collecting = function collecting () {
if (this._state !== CollectionState.COLLECTABLE) {
api.inspector.warn(("current path '" + (this.path) + "' was already collected"));
return false;
}
this._state = CollectionState.COLLECTING;
return true;
};
prototypeAccessors$9.isCollecting.get = function () {
return this._state === CollectionState.COLLECTING;
};
prototypeAccessors$9.path.set = function (value) {
var valid = validateString(value, 'page.path');
if (valid !== null) {
this._path = valid;
this._state = CollectionState.COLLECTABLE;
}
};
prototypeAccessors$9.path.get = function () {
return this._path || ("" + (document.location.pathname) + (document.location.search));
};
prototypeAccessors$9.referrer.set = function (value) {
var valid = validateString(value, 'page.referrer');
if (valid !== null) { this._referrer = valid; }
};
prototypeAccessors$9.referrer.get = function () {
return this._referrer;
};
prototypeAccessors$9.title.set = function (value) {
var valid = validateString(value, 'page.title');
if (valid !== null) { this._title = valid; }
};
prototypeAccessors$9.title.get = function () {
return this._title || document.title;
};
prototypeAccessors$9.id.set = function (value) {
var valid = validateString(value, 'page.id');
if (valid !== null) { this._id = valid; }
};
prototypeAccessors$9.id.get = function () {
return this._id;
};
prototypeAccessors$9.author.set = function (value) {
var valid = validateString(value, 'page.author');
if (valid !== null) { this._author = valid; }
};
prototypeAccessors$9.author.get = function () {
return this._author;
};
prototypeAccessors$9.date.set = function (value) {
var valid = validateDate(value, 'page.date');
if (valid !== null) { this._date = valid; }
};
prototypeAccessors$9.date.get = function () {
return this._date;
};
prototypeAccessors$9.tags.get = function () {
return this._tags;
};
prototypeAccessors$9.name.set = function (value) {
var valid = validateString(value, 'page.name');
if (valid !== null) { this._name = valid; }
};
prototypeAccessors$9.name.get = function () {
return this._name || this.title;
};
prototypeAccessors$9.labels.get = function () {
return this._labels;
};
prototypeAccessors$9.categories.get = function () {
return this._categories;
};
prototypeAccessors$9.isError.set = function (value) {
var valid = validateBoolean(value, 'page.isError');
if (valid !== null) { this._isError = valid; }
};
prototypeAccessors$9.isError.get = function () {
return this._isError;
};
prototypeAccessors$9.template.set = function (value) {
var valid = validateString(value, 'page.template');
if (valid !== null) { this._template = valid; }
};
prototypeAccessors$9.template.get = function () {
return this._template || 'autres';
};
prototypeAccessors$9.segment.set = function (value) {
var valid = validateString(value, 'page.segment');
if (valid !== null) { this._segment = valid; }
};
prototypeAccessors$9.segment.get = function () {
return this._segment || this.template;
};
prototypeAccessors$9.group.set = function (value) {
var valid = validateString(value, 'page.group');
if (valid !== null) { this._group = valid; }
};
prototypeAccessors$9.group.get = function () {
return this._group || this.template;
};
prototypeAccessors$9.subtemplate.set = function (value) {
var valid = validateString(value, 'page.subtemplate');
if (valid !== null) { this._subtemplate = valid; }
};
prototypeAccessors$9.subtemplate.get = function () {
return this._subtemplate;
};
prototypeAccessors$9.theme.set = function (value) {
var valid = validateString(value, 'page.theme');
if (valid !== null) { this._theme = valid; }
};
prototypeAccessors$9.theme.get = function () {
return this._theme;
};
prototypeAccessors$9.subtheme.set = function (value) {
var valid = validateString(value, 'page.subtheme');
if (valid !== null) { this._subtheme = valid; }
};
prototypeAccessors$9.subtheme.get = function () {
return this._subtheme;
};
prototypeAccessors$9.related.set = function (value) {
var valid = validateString(value, 'page.related');
if (valid !== null) { this._related = valid; }
};
prototypeAccessors$9.related.get = function () {
return this._related;
};
prototypeAccessors$9.depth.set = function (value) {
var valid = validateNumber(value, 'page.depth');
if (valid !== null) { this._depth = valid; }
};
prototypeAccessors$9.depth.get = function () {
return this._depth;
};
prototypeAccessors$9.current.set = function (value) {
var valid = validateNumber(value, 'page.current');
if (valid !== null) { this._current = valid; }
};
prototypeAccessors$9.current.get = function () {
return this._current;
};
prototypeAccessors$9.total.set = function (value) {
var valid = validateNumber(value, 'page.total');
if (valid !== null) { this._total = valid; }
};
prototypeAccessors$9.total.get = function () {
return this._total;
};
prototypeAccessors$9.filters.get = function () {
return this._filters;
};
prototypeAccessors$9.layer.get = function () {
this._state = CollectionState.COLLECTED;
var layer = [];
if (this.path) { layer.push('path', normalize(this.path)); }
if (this.referrer) { layer.push('referrer', normalize(this.referrer)); }
if (this.title) { layer.push('page_title', normalize(this.title)); }
if (this.name) { layer.push('page_name', normalize(this.name)); }
if (this.id) { layer.push('page_id', normalize(this.id)); }
if (this.author) { layer.push('page_author', normalize(this.author)); }
if (this.date) { layer.push('page_date', normalize(this.date)); }
var components = Object.keys(Inventory).map(function (id) { return document.querySelector(Inventory[id]) !== null ? id : null; }).filter(function (id) { return id !== null; }).join(',');
if (components) { layer.push('page_components', components); }
var labels = this._labels.slice(0, 5);
labels.length = 5;
if (labels.some(function (label) { return label; })) { layer.push('pagelabel', labels.map(function (label) { return typeof label === 'string' ? normalize(label) : ''; }).join(',')); }
var tags = this._tags;
if (tags.some(function (tag) { return tag; })) { layer.push('pagetag', tags.map(function (tag) { return typeof tag === 'string' ? normalize(tag) : ''; }).join(',')); }
this._categories.forEach(function (category, index) {
if (category) { layer.push(("page_category" + (index + 1)), category); }
});
if (this._isError) { layer.push('error', '1'); }
layer.push('page_template', normalize(this.template));
layer.push('pagegroup', normalize(this.group));
layer.push('site-segment', normalize(this.segment));
if (this.subtemplate) { layer.push('page_subtemplate', normalize(this.subtemplate)); }
if (this.theme) { layer.push('page_theme', normalize(this.theme)); }
if (this.subtheme) { layer.push('page_subtheme', normalize(this.subtheme)); }
if (this.related) { layer.push('page_related', normalize(this.related)); }
if (!isNaN(this.depth)) { layer.push('page_depth', this.depth); }
if (!isNaN(this.current) && this.current > -1) {
var pagination = "" + (this.current);
if (!isNaN(this.total) && this.total > -1) { pagination += "/" + (this.total); }
layer.push('page_pagination', pagination);
}
if (this.filters.length && this.filters.some(function (label) { return label; })) {
var filters = this.filters.map(function (filter) { return typeof filter === 'string' ? normalize(filter) : ''; });
layer.push('page_filters', filters.join(','));
}
return layer;
};
Object.defineProperties( Page.prototype, prototypeAccessors$9 );
var Method = {
STANDARD: {
id: 'standard',
value: 'standard',
isDefault: true
},
AUTOCOMPLETE: {
id: 'autocomplete',
value: 'autocompletion'
}
};
var Search = function Search (config) {
this._config = config || {};
};
var prototypeAccessors$8 = { engine: { configurable: true },results: { configurable: true },terms: { configurable: true },category: { configurable: true },theme: { configurable: true },type: { configurable: true },method: { configurable: true },layer: { configurable: true } };
Search.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this.engine = clear ? undefined : this._config.engine;
this.results = clear || isNaN(this._config.results) ? -1 : this._config.results;
this.terms = clear ? undefined : this._config.terms;
this.category = clear ? undefined : this._config.category;
this.theme = clear ? undefined : this._config.theme;
this.type = clear ? undefined : this._config.type;
this.method = clear ? undefined : this._config.method;
};
prototypeAccessors$8.engine.set = function (value) {
var valid = validateString(value, 'search.engine');
if (valid !== null) { this._engine = valid; }
};
prototypeAccessors$8.engine.get = function () {
return this._engine;
};
prototypeAccessors$8.results.set = function (value) {
var valid = validateNumber(value, 'search.results');
if (valid !== null) { this._results = valid; }
};
prototypeAccessors$8.results.get = function () {
return this._results;
};
prototypeAccessors$8.terms.set = function (value) {
var valid = validateString(value, 'search.terms');
if (valid !== null) { this._terms = valid; }
};
prototypeAccessors$8.terms.get = function () {
return this._terms;
};
prototypeAccessors$8.category.set = function (value) {
var valid = validateString(value, 'search.category');
if (valid !== null) { this._category = valid; }
};
prototypeAccessors$8.category.get = function () {
return this._category;
};
prototypeAccessors$8.theme.set = function (value) {
var valid = validateString(value, 'search.theme');
if (valid !== null) { this._theme = valid; }
};
prototypeAccessors$8.theme.get = function () {
return this._theme;
};
prototypeAccessors$8.type.set = function (value) {
var valid = validateString(value, 'search.type');
if (valid !== null) { this._type = valid; }
this._type = value;
};
prototypeAccessors$8.type.get = function () {
return this._type;
};
prototypeAccessors$8.method.set = function (id) {
var methods = Object.values(Method);
this._method = methods.filter(function (method) { return method.id === id || method.value === id; })[0] || methods.filter(function (method) { return method.isDefault; })[0];
};
prototypeAccessors$8.method.get = function () {
return this._method;
};
prototypeAccessors$8.layer.get = function () {
var layer = [];
if (this.engine) { layer.push('isearchengine', normalize(this.engine)); }
if (this.results > -1) { layer.push('isearchresults', this.results); }
if (this.terms) { layer.push('isearchkey', 'search_terms', 'isearchdata', normalize(this.terms)); }
if (this.category) { layer.push('isearchkey', 'search_category', 'isearchdata', normalize(this.category)); }
if (this.theme) { layer.push('isearchkey', 'search_theme', 'isearchdata', normalize(this.theme)); }
if (this.type) { layer.push('isearchkey', 'search_type', 'isearchdata', normalize(this.type)); }
if (this._method && layer.length) { layer.push('isearchkey', 'search_method', 'isearchdata', this._method.value); }
return layer;
};
Object.defineProperties( Search.prototype, prototypeAccessors$8 );
Search.Method = Method;
var Funnel = function Funnel (config) {
this._config = config || {};
};
var prototypeAccessors$7 = { id: { configurable: true },type: { configurable: true },name: { configurable: true },step: { configurable: true },current: { configurable: true },total: { configurable: true },objective: { configurable: true },error: { configurable: true },layer: { configurable: true } };
Funnel.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this.id = clear ? undefined : this._config.id;
this.type = clear ? undefined : this._config.type;
this.name = clear ? undefined : this._config.name;
this.step = clear ? undefined : this._config.step;
this.current = clear || isNaN(this._config.current) ? -1 : this._config.current;
this.total = clear || isNaN(this._config.total) ? -1 : this._config.total;
this.objective = clear ? undefined : this._config.objective;
this.error = clear ? undefined : this._config.error;
};
prototypeAccessors$7.id.set = function (value) {
var valid = validateString(value, 'funnel.id');
if (valid !== null) { this._id = valid; }
};
prototypeAccessors$7.id.get = function () {
return this._id;
};
prototypeAccessors$7.type.set = function (value) {
var valid = validateString(value, 'funnel.type');
if (valid !== null) { this._type = valid; }
};
prototypeAccessors$7.type.get = function () {
return this._type;
};
prototypeAccessors$7.name.set = function (value) {
var valid = validateString(value, 'funnel.name');
if (valid !== null) { this._name = valid; }
};
prototypeAccessors$7.name.get = function () {
return this._name;
};
prototypeAccessors$7.step.set = function (value) {
var valid = validateString(value, 'funnel.step');
if (valid !== null) { this._step = valid; }
};
prototypeAccessors$7.step.get = function () {
return this._step;
};
prototypeAccessors$7.current.set = function (value) {
var valid = validateNumber(value, 'funnel.current');
if (valid !== null) { this._current = valid; }
};
prototypeAccessors$7.current.get = function () {
return this._current;
};
prototypeAccessors$7.total.set = function (value) {
var valid = validateNumber(value, 'funnel.total');
if (valid !== null) { this._total = valid; }
};
prototypeAccessors$7.total.get = function () {
return this._total;
};
prototypeAccessors$7.objective.set = function (value) {
var valid = validateString(value, 'funnel.objective');
if (valid !== null) { this._objective = valid; }
this._objective = value;
};
prototypeAccessors$7.objective.get = function () {
return this._objective;
};
prototypeAccessors$7.error.set = function (value) {
var valid = validateString(value, 'funnel.error');
if (valid !== null) { this._error = valid; }
this._error = value;
};
prototypeAccessors$7.error.get = function () {
return this._error;
};
prototypeAccessors$7.layer.get = function () {
var layer = [];
if (this.id) { layer.push('funnel_id', normalize(this.id)); }
if (this.type) { layer.push('funnel_type', normalize(this.type)); }
if (this.name) { layer.push('funnel_name', normalize(this.name)); }
if (this.step) { layer.push('funnel_step_name', normalize(this.step)); }
if (!isNaN(this.current) && this.current > -1) { layer.push('funnel_step_number', this.current); }
if (!isNaN(this.total) && this.total > -1) { layer.push('funnel_step_max', this.total); }
if (this.objective) { layer.push('funnel_objective', normalize(this.objective)); }
if (this.error) { layer.push('funnel_error', normalize(this.error)); }
return layer;
};
Object.defineProperties( Funnel.prototype, prototypeAccessors$7 );
var ActionMode = {
IN: 'in',
OUT: 'out',
NONE: 'none'
};
var ActionStatus = {
UNSTARTED: {
id: 'unstarted',
value: -1
},
STARTED: {
id: 'started',
value: 1
},
SINGULAR: {
id: 'singular',
value: 2
},
ENDED: {
id: 'ended',
value: 3
}
};
var getParametersLayer = function (data) {
return Object.entries(data).map(function (ref) {
var key = ref[0];
var value = ref[1];
return ['actionpname', normalize(key), 'actionpvalue', normalize(value)];
}).flat();
};
var Action = function Action (name) {
this._isMuted = false;
this._isForced = false;
this._name = name;
this._status = ActionStatus.UNSTARTED;
this._labels = [];
this._parameters = {};
this._sentData = [];
};
var prototypeAccessors$6 = { isMuted: { configurable: true },isForced: { configurable: true },isSingular: { configurable: true },status: { configurable: true },name: { configurable: true },labels: { configurable: true },reference: { configurable: true },parameters: { configurable: true },mode: { configurable: true },_base: { configurable: true } };
prototypeAccessors$6.isMuted.get = function () {
return this._isMuted;
};
prototypeAccessors$6.isMuted.set = function (value) {
this._isMuted = value;
};
prototypeAccessors$6.isForced.get = function () {
return this._isForced;
};
prototypeAccessors$6.isForced.set = function (value) {
this._isForced = value;
};
prototypeAccessors$6.isSingular.get = function () {
return this._status === ActionStatus.SINGULAR;
};
prototypeAccessors$6.status.get = function () {
return this._status;
};
prototypeAccessors$6.name.get = function () {
return this._name;
};
prototypeAccessors$6.labels.get = function () {
return this._labels;
};
prototypeAccessors$6.reference.get = function () {
return this._reference;
};
prototypeAccessors$6.parameters.get = function () {
return this._parameters;
};
prototypeAccessors$6.mode.get = function () {
return this._mode;
};
Action.prototype.singularize = function singularize () {
this._status = ActionStatus.SINGULAR;
};
Action.prototype.rewind = function rewind () {
this._sentData = [];
this._status = ActionStatus.UNSTARTED;
};
Action.prototype.addParameter = function addParameter (key, value) {
this._parameters[key] = value;
};
Action.prototype.removeParameter = function removeParameter (key) {
delete this._parameters[key];
};
prototypeAccessors$6.reference.set = function (value) {
var valid = validateString(value, ("action " + (this._name)));
if (valid !== null) { this._reference = valid; }
};
prototypeAccessors$6._base.get = function () {
return ['actionname', this._name];
};
Action.prototype._getLayer = function _getLayer (data) {
if ( data === void 0 ) data = {};
if (this._isMuted) { return []; }
if (this._mode !== ActionMode.IN) { this._sentData.push(JSON.stringify(data)); }
var layer = this._base;
switch (this._mode) {
case ActionMode.IN:
case ActionMode.OUT:
layer.push('actionmode', this._mode);
break;
}
var labels = this._labels.slice(0, 5);
labels.length = 5;
if (labels.some(function (label) { return label; })) { layer.push('actionlabel', labels.map(function (label) { return typeof label === 'string' ? normalize(label) : ''; }).join(',')); }
if (this._reference) { layer.push('actionref', this._reference); }
layer.push.apply(layer, getParametersLayer(Object.assign(this._parameters, data || {})));
return layer;
};
Action.prototype.start = function start (data) {
switch (this._status) {
case ActionStatus.UNSTARTED:
this._mode = ActionMode.IN;
this._status = ActionStatus.STARTED;
break;
case ActionStatus.SINGULAR:
this._mode = ActionMode.NONE;
this._status = ActionStatus.ENDED;
break;
default:
api.inspector.error(("unexpected start on action " + (this._name) + " with status " + (this._status.id)));
return [];
}
return this._getLayer(data);
};
Action.prototype.end = function end (data) {
switch (this._status) {
case ActionStatus.STARTED:
this._mode = ActionMode.OUT;
this._status = ActionStatus.ENDED;
break;
case ActionStatus.UNSTARTED:
this._mode = ActionMode.NONE;
this._status = ActionStatus.ENDED;
break;
case ActionStatus.SINGULAR:
this._mode = ActionMode.NONE;
this._status = ActionStatus.ENDED;
break;
case ActionStatus.ENDED:
if (this._sentData.includes(JSON.stringify(data))) { return []; }
this._mode = ActionMode.NONE;
this._status = ActionStatus.ENDED;
break;
default:
return [];
}
return this._getLayer(data);
};
Action.prototype.resume = function resume (data) {
if (this._isMuted) { return []; }
if (this._status.value >= ActionStatus.ENDED.value) {
api.inspector.error(("unexpected resuming on action " + (this._name) + " with status " + (this._status.id)));
return [];
}
var layer = this._base;
if (data) { layer.push.apply(layer, getParametersLayer(data)); }
return layer;
};
Object.defineProperties( Action.prototype, prototypeAccessors$6 );
var Actions = function Actions () {
this._actions = [];
};
Actions.prototype.rewind = function rewind () {
this._actions.forEach(function (action) { return action.rewind(); });
};
Actions.prototype.getAction = function getAction (name) {
var action = this._actions.filter(function (action) { return action.name === name; })[0];
if (!action) {
action = new Action(name);
this._actions.push(action);
}
return action;
};
Actions.prototype.hasAction = function hasAction (name) {
return this._actions.some(function (action) { return action.name === name; });
};
Actions.prototype.remove = function remove (action) {
var index = this._actions.indexOf(action);
if (index === -1) { return false; }
this._actions.splice(index, 1);
return true;
};
Actions.ActionMode = ActionMode;
var actions = new Actions();
Actions.instance = actions;
var Location = function Location (onRouteChange, isListeningHash) {
if ( isListeningHash === void 0 ) isListeningHash = false;
this._onRouteChange = onRouteChange;
this._isListeningHash = isListeningHash;
this._update();
renderer.add(this);
};
var prototypeAccessors$5 = { path: { configurable: true },hasTitle: { configurable: true },title: { configurable: true },referrer: { configurable: true } };
Location.prototype._update = function _update () {
this._pathname = document.location.pathname;
this._search = document.location.search;
this._hash = document.location.hash;
this._path = "" + (this._pathname) + (this._search);
if (this._isListeningHash) { this._path += this._hash; }
this._hasTitle = this._title === document.title;
this._title = document.title;
};
Location.prototype.render = function render () {
if (this._pathname !== document.location.pathname || this._search !== document.location.search) { this.change(); }
if (this._isListeningHash && this._hash !== document.location.hash) { this.change(); }
};
Location.prototype.change = function change () {
this._referrer = this._path;
this._update();
this._onRouteChange();
};
prototypeAccessors$5.path.get = function () {
return this._path;
};
prototypeAccessors$5.hasTitle.get = function () {
return this._hasTitle;
};
prototypeAccessors$5.title.get = function () {
return this._title;
};
prototypeAccessors$5.referrer.get = function () {
return this._referrer;
};
Object.defineProperties( Location.prototype, prototypeAccessors$5 );
var CollectorEvent = {
COLLECT: api.internals.ns.event('collect')
};
var ActioneeEmission = {
REWIND: api.internals.ns.emission('analytics', 'rewind')
};
var Collector = function Collector (config) {
switch (config.collection) {
case Collection.MANUAL:
case Collection.LOAD:
case Collection.FULL:
case Collection.HASH:
this._collection = config.collection;
break;
default:
/* deprecated start */
if (config.mode) {
switch (config.mode) {
case 'manual':
this._collection = config.collection;
break;
}
}
/* deprecated end */
switch (true) {
/* deprecated */
case config.mode === 'manual':
this._collection = Collection.MANUAL;
break;
case api.mode === api.Modes.ANGULAR:
case api.mode === api.Modes.REACT:
case api.mode === api.Modes.VUE:
this._collection = Collection.FULL;
break;
default:
this._collection = Collection.LOAD;
}
}
this._isActionEnabled = config.isActionEnabled === 'false' || config.isActionEnabled;
this._user = new User(config.user);
this._site = new Site(config.site);
this._page = new Page(config.page);
this._search = new Search(config.search);
this._funnel = new Funnel(config.funnel);
this._delay = -1;
queue.setCollector(this);
};
var prototypeAccessors$4 = { page: { configurable: true },user: { configurable: true },site: { configurable: true },search: { configurable: true },funnel: { configurable: true },collection: { configurable: true },isCollecting: { configurable: true },isActionEnabled: { configurable: true },layer: { configurable: true } };
prototypeAccessors$4.page.get = function () {
return this._page;
};
prototypeAccessors$4.user.get = function () {
return this._user;
};
prototypeAccessors$4.site.get = function () {
return this._site;
};
prototypeAccessors$4.search.get = function () {
return this._search;
};
prototypeAccessors$4.funnel.get = function () {
return this._funnel;
};
Collector.prototype.start = function start () {
var handleRouteChange = this._handleRouteChange.bind(this);
switch (this._collection) {
case Collection.LOAD:
this.collect();
break;
case Collection.FULL:
this.collect();
this._location = new Location(handleRouteChange);
break;
case Collection.HASH:
this.collect();
this._location = new Location(handleRouteChange, true);
break;
}
};
Collector.prototype._handleRouteChange = function _handleRouteChange () {
queue.send(true);
this._delay = 6;
renderer.add(this);
};
Collector.prototype.render = function render () {
this._delay--;
if (this._delay < 0) {
renderer.remove(this);
this._routeChanged();
}
};
Collector.prototype._routeChanged = function _routeChanged () {
actions.rewind();
this._page.referrer = this._location.referrer;
if (this._location.hasTitle) { this._page.title = this._location.title; }
this._page.path = this._location.path;
var event = new CustomEvent(CollectorEvent.COLLECT);
document.documentElement.dispatchEvent(event);
this.collect();
if (api.internals && api.internals.stage && api.internals.stage.root) { api.internals.stage.root.descend(ActioneeEmission.REWIND); }
};
Collector.prototype.reset = function reset (clear) {
if ( clear === void 0 ) clear = false;
this._user.reset(clear);
this._site.reset(clear);
this._page.reset(clear);
this._search.reset(clear);
this._funnel.reset(clear);
};
Collector.prototype.collect = function collect () {
if (!this.page.collecting()) { return; }
queue.collect();
};
prototypeAccessors$4.collection.get = function () {
return this._collection;
};
prototypeAccessors$4.isCollecting.get = function () {
return this._page.isCollecting;
};
prototypeAccessors$4.isActionEnabled.get = function () {
return this._isActionEnabled;
};
prototypeAccessors$4.isActionEnabled.set = function (value) {
this._isActionEnabled = value;
};
prototypeAccessors$4.layer.get = function () {
return ( this._user.layer ).concat( this._site.layer,
this._page.layer,
this._search.layer,
this._funnel.layer
);
};
Object.defineProperties( Collector.prototype, prototypeAccessors$4 );
var Analytics = function Analytics () {
var this$1$1 = this;
this._isReady = false;
this._readiness = new Promise(function (resolve, reject) {
if (this$1$1._isReady) { resolve(); }
else {
this$1$1._resolve = resolve;
this$1$1._reject = reject;
}
});
this._configure();
};
var prototypeAccessors$3 = { isReady: { configurable: true },readiness: { configurable: true },page: { configurable: true },user: { configurable: true },site: { configurable: true },search: { configurable: true },funnel: { configurable: true },cmp: { configurable: true },opt: { configurable: true },collection: { configurable: true },isActionEnabled: { configurable: true },isDebugging: { configurable: true } };
Analytics.prototype._configure = function _configure () {
switch (true) {
case window[patch.namespace] !== undefined:
this._config = window[patch.namespace].configuration.analytics;
window[patch.namespace].promise.then(this._build.bind(this), function () {});
break;
case api.internals !== undefined && api.internals.configuration !== undefined && api.internals.configuration.analytics !== undefined && api.internals.configuration.analytics.domain !== undefined:
this._config = api.internals.configuration.analytics;
this._build();
break;
case api.analytics !== undefined && api.analytics.domain !== undefined:
this._config = api.analytics;
this._build();
break;
default:
api.inspector.warn('analytics configuration is incorrect or missing (required : domain)');
}
};
Analytics.prototype._build = function _build () {
var this$1$1 = this;
this._init = new Init(this._config.domain);
this._init.configure().then(this._start.bind(this), function (reason) { return this$1$1._reject(reason); });
};
prototypeAccessors$3.isReady.get = function () {
return this._isReady;
};
prototypeAccessors$3.readiness.get = function () {
return this._readiness;
};
Analytics.prototype._start = function _start () {
if (this._isReady) { return; }
this._cmp = new ConsentManagerPlatform(this._config.cmp);
this._collector = new Collector(this._config);
this._collector.reset();
this._isReady = true;
this._resolve();
queue.start();
this._collector.start();
};
prototypeAccessors$3.page.get = function () {
return this._collector.page;
};
prototypeAccessors$3.user.get = function () {
return this._collector.user;
};
prototypeAccessors$3.site.get = function () {
return this._collector._site;
};
prototypeAccessors$3.search.get = function () {
return this._collector.search;
};
prototypeAccessors$3.funnel.get = function () {
return this._collector.funnel;
};
prototypeAccessors$3.cmp.get = function () {
return this._cmp;
};
prototypeAccessors$3.opt.get = function () {
return opt;
};
prototypeAccessors$3.collection.get = function () {
return this._collector.collection;
};
prototypeAccessors$3.isActionEnabled.get = function () {
return this._collector.isActionEnabled;
};
prototypeAccessors$3.isActionEnabled.set = function (value) {
this._collector.isActionEnabled = value;
};
prototypeAccessors$3.isDebugging.get = function () {
return debug.isActive;
};
prototypeAccessors$3.isDebugging.set = function (value) {
debug.isActive = value;
};
Analytics.prototype.push = function push$1 (type, layer) {
push(type, layer);
};
Analytics.prototype.reset = function reset (clear) {
this._collector.reset();
};
Analytics.prototype.collect = function collect () {
this._collector.collect();
};
Object.defineProperties( Analytics.prototype, prototypeAccessors$3 );
var analytics = new Analytics();
analytics.Collection = Collection;
analytics.PushType = PushType;
/**
* Copy properties from multiple sources including accessors.
* source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs
*
* @param {object} [target] - Target object to copy into
* @param {...objects} [sources] - Multiple objects
* @return {object} A new object
*
* @example
*
* const obj1 = {
* key: 'value'
* };
* const obj2 = {
* get function01 () {
* return a-value;
* }
* set function01 () {
* return a-value;
* }
* };
* completeAssign(obj1, obj2)
*/
var completeAssign = function (target) {
var sources = [], len = arguments.length - 1;
while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];
sources.forEach(function (source) {
var descriptors = Object.keys(source).reduce(function (descriptors, key) {
descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
return descriptors;
}, {});
Object.getOwnPropertySymbols(source).forEach(function (sym) {
var descriptor = Object.getOwnPropertyDescriptor(source, sym);
if (descriptor.enumerable) {
descriptors[sym] = descriptor;
}
});
Object.defineProperties(target, descriptors);
});
return target;
};
api.analytics = completeAssign(analytics, {});
var Type$1 = {
// impression
IMPRESSION: {
id: 'impression', // element appeared in the page
isSingular: true,
isBeginning: true,
attributed: false,
type: 'impression'
},
// interaction
CLICK: {
id: 'click', // generic click interaction
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'click',
method: 'eventListener'
},
INTERNAL: {
id: 'internal', // anchor click redirecting on an internal url
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'click',
method: 'eventListener'
},
EXTERNAL: {
id: 'external', // anchor click redirecting on an external url
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'click',
method: 'eventListener'
},
DOWNLOAD: {
id: 'download', // anchor click downloading a file
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'click',
method: 'eventListener'
},
BUTTON: {
id: 'button', // button click
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'click',
method: 'eventListener'
},
DOUBLE_CLICK: {
id: 'dblclick', // double click
isBeginning: true,
attributed: true,
type: 'interaction',
event: 'dblclick',
method: 'eventListener'
},
// event
OPEN: {
id: 'open', // open event
isSingular: true,
attributed: false,
type: 'event',
method: 'eventListener'
},
COMPLETE: {
id: 'complete', // complete event
isSingular: true,
attributed: false,
type: 'event',
method: 'eventListener'
},
FOCUS: {
id: 'focus', // focus event
isSingular: true,
attributed: false,
type: 'event',
method: 'eventListener'
},
ERROR: {
id: 'error', // error event
isSingular: true,
attributed: false,
type: 'event'
},
ADD: {
id: 'add', // add event
isSingular: true,
attributed: false,
type: 'event'
},
REMOVE: {
id: 'remove', // remove event
isSingular: true,
attributed: false,
type: 'event'
},
DISPLAY: {
id: 'display', // display event
isSingular: true,
attributed: false,
type: 'event'
},
CHANGE: {
id: 'change', // input event change
isSingular: true,
attributed: true,
type: 'event',
event: 'change',
method: 'change'
},
PROGRESS: {
id: 'progress', // video retention event with percent of the part reached
isBeginning: true,
attributed: true,
type: 'event'
},
// component interaction
SHARE: {
id: 'share', // component share click (share)
isBeginning: true,
attributed: false,
type: 'interaction'
},
PRESS: {
id: 'press', // component press click (pressable tag)
isBeginning: true,
attributed: false,
type: 'interaction'
},
RELEASE: {
id: 'release', // component release click (pressable tag)
isBeginning: true,
attributed: false,
type: 'interaction'
},
DISMISS: {
id: 'dismiss', // component dismiss click (dismissible tag)
isBeginning: true,
attributed: false,
type: 'interaction'
},
UPLOAD: {
id: 'upload', // component upload click (upload)
isBeginning: true,
attributed: false,
type: 'interaction'
},
CHECK: {
id: 'check', // component check click (checkbox, radio, toggle)
isBeginning: true,
attributed: false,
type: 'interaction'
},
UNCHECK: {
id: 'uncheck', // component uncheck click (checkbox, radio, toggle)
isBeginning: true,
attributed: false,
type: 'interaction'
},
SELECT: {
id: 'select', // component select change (select)
isBeginning: true,
attributed: false,
type: 'interaction'
},
SUBSCRIBE: {
id: 'subscribe', // component subscribe click (follow)
isBeginning: true,
attributed: false,
type: 'interaction'
},
// component event
DISCLOSE: {
id: 'disclose', // component disclose event (accordion, modal, tab)
isBeginning: true,
attributed: false,
type: 'event'
},
SEARCH: {
id: 'search', // component disclose event (accordion, modal, tab)
isBeginning: true,
attributed: false,
type: 'event'
},
SHOW: {
id: 'show', // component show event (tooltip)
isSingular: true,
attributed: false,
type: 'event'
},
HIDE: {
id: 'hide', // component hide event (tooltip)
isSingular: true,
attributed: false,
type: 'event'
},
// video
AUTOPLAY: {
id: 'autoplay', // video autoplay event
isBeginning: true,
attributed: false,
type: 'event'
},
PLAY: {
id: 'play', // video play click
isBeginning: true,
attributed: false,
type: 'interaction'
},
PAUSE: {
id: 'pause', // video pause click
isBeginning: true,
attributed: false,
type: 'interaction'
},
END: {
id: 'end', // video end event
isBeginning: true,
attributed: false,
type: 'event'
}
};
var Type = {
UNDEFINED: 'undefined',
HEADING: 'heading',
COMPONENT: 'component',
CONTENT: 'content'
};
var NODE_POSITION = Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINED_BY;
var Heading = function Heading (heading) {
this._label = heading.textContent.trim();
this._level = Number(heading.tagName.charAt(1));
};
var prototypeAccessors$2 = { level: { configurable: true },label: { configurable: true } };
prototypeAccessors$2.level.get = function () {
return this._level;
};
prototypeAccessors$2.label.get = function () {
return this._label;
};
Object.defineProperties( Heading.prototype, prototypeAccessors$2 );
var Member = function Member (node, target, level) {
this._type = Type.UNDEFINED;
this._node = node;
this._target = target;
this._level = level;
this._label = '';
this._component = '';
this._isValid = true;
this.analyse();
};
var prototypeAccessors$1$1 = { type: { configurable: true },level: { configurable: true },label: { configurable: true },component: { configurable: true },node: { configurable: true },target: { configurable: true },isValid: { configurable: true } };
Member.prototype._parseHeadings = function _parseHeadings () {
var this$1$1 = this;
var selector = Array.from({ length: this._level }, function (v, i) { return ("h" + (i + 1)); }).join(',');
this._headings = Array.from(this._node.querySelectorAll(selector)).filter(function (heading) { return heading === this$1$1._node || heading.parentNode === this$1$1._node || (heading.parentNode != null && heading.parentNode.parentNode === this$1$1._node); }).filter(function (heading) { return (this$1$1._target.compareDocumentPosition(heading) & NODE_POSITION) > 0; }).map(function (heading) { return new Heading(heading); }).reverse();
};
Member.prototype._getComponent = function _getComponent () {
if (typeof api !== 'function') { return false; }
var element = api(this._node);
if (!element) { return false; }
var instance = Object.values(element).filter(function (actionee) { return actionee.isActionee; }).sort(function (a, b) { return b.priority - a.priority; })[0];
if (!instance) { return false; }
this._type = Type.COMPONENT;
this._isValid = instance.validate(this._target);
var selector = Array.from({ length: 6 }, function (v, i) { return ("h" + (i + 1)); }).join(',');
var top = Array.from(this._node.querySelectorAll(selector)).map(function (heading) { return new Heading(heading); }).sort(function (a, b) { return a.level - b.level; })[0];
if (top && top.level <= this._level) { this._level = top.level - 1; }
var hx = this._node.closest(selector);
if (hx) {
var heading = new Heading(hx);
if (heading.level <= this._level) { this._level = heading.level - 1; }
}
if (!isNaN(instance.level) && instance.level < this._level) { this._level = instance.level; }
this._label = instance.label;
this._component = instance.component;
return true;
};
Member.prototype._getHeading = function _getHeading () {
var this$1$1 = this;
if (!this._headings.length) { return false; }
var labels = [];
this._headings.forEach(function (heading) {
if (heading.level <= this$1$1._level) {
if (heading.level > 1) { labels.unshift(heading.label); }
this$1$1._level = heading.level - 1;
}
});
if (!labels.length) { return false; }
this._type = Type.HEADING;
this._label = labels.join(' ');
return true;
};
Member.prototype.analyse = function analyse () {
this._parseHeadings();
if (this._getComponent()) { return; }
if (this._getHeading()) { return; }
if (this._node !== this._target) { return; }
var label = this._node.textContent.trim();
if (!label) { return; }
this._type = Type.CONTENT;
this._label = label;
};
prototypeAccessors$1$1.type.get = function () {
return this._type;
};
prototypeAccessors$1$1.level.get = function () {
return this._level;
};
prototypeAccessors$1$1.label.get = function () {
return this._label;
};
prototypeAccessors$1$1.component.get = function () {
return this._component;
};
prototypeAccessors$1$1.node.get = function () {
return this._node;
};
prototypeAccessors$1$1.target.get = function () {
return this._target;
};
prototypeAccessors$1$1.isValid.get = function () {
return this._isValid;
};
Object.defineProperties( Member.prototype, prototypeAccessors$1$1 );
var Hierarchy = function Hierarchy (node) {
this._node = node;
this._process();
};
var prototypeAccessors$1 = { localComponent: { configurable: true },globalComponent: { configurable: true },label: { configurable: true },title: { configurable: true },component: { configurable: true } };
Hierarchy.prototype._process = function _process () {
// console.log('_______________ start ____________________');
var member = new Member(this._node, this._node, 6);
// console.log('- FIRST MEMBER', member);
this._level = member.level;
this._members = [member];
var node = this._node.parentNode;
while (document.documentElement.contains(node) && node !== document.documentElement && this._level > 0) {
// console.log('MEMBERS ARRAY', this._members);
// console.log('NODE ANALYSIS', node);
var member$1 = new Member(node, this._node, this._level);
// console.log('NEW MEMBER', member);
switch (true) {
case member$1.type === Type.UNDEFINED:
// console.log('****UNDEFINED');
break;
case !member$1.isValid:
// console.log('****INVALID');
break;
case member$1.label === this._members[0].label && member$1.type === Type.HEADING && this._members[0].type === Type.COMPONENT:
// console.log('***** SAME');
// do nothing
break;
case member$1.label === this._members[0].label && member$1.type === Type.COMPONENT && this._members[0].type === Type.HEADING:
// console.log('***** SAME INVERT');
this._members.splice(0, 1, member$1);
break;
default:
this._members.unshift(member$1);
if (member$1.level < this._level) { this._level = member$1.level; }
}
node = node.parentNode;
}
this._label = normalize(this._members[this._members.length - 1].label);
this._title = normalize(this._members.filter(function (member) { return member.label; }).map(function (member) { return member.label; }).join(' '));
var components = this._members.filter(function (member) { return member.component; }).map(function (member) { return member.component; });
this._component = normalize(components.join(' '));
this._localComponent = components[components.length - 1];
this._globalComponent = components[0];
// console.log('========= end ===========');
};
prototypeAccessors$1.localComponent.get = function () {
return this._localComponent;
};
prototypeAccessors$1.globalComponent.get = function () {
return this._globalComponent;
};
prototypeAccessors$1.label.get = function () {
return this._label;
};
prototypeAccessors$1.title.get = function () {
return this._title;
};
prototypeAccessors$1.component.get = function () {
return this._component;
};
Object.defineProperties( Hierarchy.prototype, prototypeAccessors$1 );
var ActionElement = function ActionElement (node, type, id, category, title, parameters, isRating, isForced) {
if ( category === void 0 ) category = '';
if ( title === void 0 ) title = null;
if ( parameters === void 0 ) parameters = {};
if ( isRating === void 0 ) isRating = false;
if ( isForced === void 0 ) isForced = false;
this._node = node;
this._type = type;
this._id = id || this._node.id;
this._isMuted = false;
this._title = title;
this._category = category;
this._parameters = parameters;
this._isRating = isRating;
this._isForced = isForced;
this._hasBegun = false;
// this._init();
requestAnimationFrame(this._init.bind(this));
};
var prototypeAccessors = { isMuted: { configurable: true },action: { configurable: true } };
ActionElement.prototype._init = function _init () {
var this$1$1 = this;
this._hierarchy = new Hierarchy(this._node);
var id = '';
var type = '';
if (this._id) { id = "_[" + (this._id) + "]"; }
else { api.inspector.warn(("Analytics API requires an id to be set on tracked element. Missing on " + (this._node.outerHTML))); }
if (this._type) { type = "(" + (this._type.id) + ")_"; }
this._name = "" + type + (this._title || this._hierarchy.title) + id;
this._action = actions.getAction(this._name, this._type.status);
if (this._type.isSingular) { this._action.singularize(); }
Object.keys(this._parameters).forEach(function (key) { return this$1$1._action.addParameter(key, this$1$1._parameters[key]); });
this._action.isMuted = this._isMuted;
this._action.isForced = this._isForced;
this._action.labels[0] = this._type.id;
this._action.labels[1] = this._hierarchy.globalComponent;
this._action.labels[2] = this._hierarchy.localComponent;
this._action.labels[4] = this._category;
if (this._hierarchy.label) { this._action.addParameter('component_label', this._hierarchy.label); }
if (this._hierarchy.title) { this._action.addParameter('heading_hierarchy', this._hierarchy.title); }
if (this._hierarchy.component) { this._action.addParameter('component_hierarchy', this._hierarchy.component); }
this.begin();
};
prototypeAccessors.isMuted.get = function () {
return this._action ? this._action.isMuted : this._isMuted;
};
prototypeAccessors.isMuted.set = function (value) {
this._isMuted = value;
if (this._action) { this._action.isMuted = value; }
};
prototypeAccessors.action.get = function () {
return this._action;
};
ActionElement.prototype.rewind = function rewind () {
this._hasBegun = false;
this.begin();
};
ActionElement.prototype.begin = function begin (data) {
if ( data === void 0 ) data = {};
if (this._hasBegun) { return; }
this._hasBegun = true;
if (this._type.isBeginning && (this._type.isSingular || this._isRating)) { queue.appendStartingAction(this._action, data); }
};
ActionElement.prototype.act = function act (data) {
var this$1$1 = this;
if ( data === void 0 ) data = {};
if (this._isMuted) { return; }
if (!this._action) {
requestAnimationFrame(function () { return this$1$1.act(data); });
return;
}
queue.appendEndingAction(this._action, data);
};
ActionElement.prototype.dispose = function dispose () {
actions.remove(this._action);
};
Object.defineProperties( ActionElement.prototype, prototypeAccessors );
var ActionAttributes = {
RATING: api.internals.ns.attr('analytics-rating'),
ACTION: api.internals.ns.attr('analytics-action')
};
var Actionee = /*@__PURE__*/(function (superclass) {
function Actionee (priority, category, title, isForced) {
if ( priority === void 0 ) priority = -1;
if ( category === void 0 ) category = '';
if ( title === void 0 ) title = null;
if ( isForced === void 0 ) isForced = false;
superclass.call(this);
this._type = null;
this._priority = priority;
this._category = category;
this._title = title;
this._parameters = {};
this._data = {};
this._isMuted = false;
this._isForced = isForced;
}
if ( superclass ) Actionee.__proto__ = superclass;
Actionee.prototype = Object.create( superclass && superclass.prototype );
Actionee.prototype.constructor = Actionee;
var prototypeAccessors = { proxy: { configurable: true },data: { configurable: true },isMuted: { configurable: true },priority: { configurable: true },isInteractive: { configurable: true },actionElement: { configurable: true },label: { configurable: true },value: { configurable: true },isActionee: { configurable: true },level: { configurable: true },type: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'Actionee';
};
prototypeAccessors.proxy.get = function () {
var scope = this;
var proxy = {
validate: function (target, members) { return scope.validate(target, members); }
};
var proxyAccessors = {
get isActionee () {
return true;
},
get label () {
return scope.label;
},
get priority () {
return scope.priority;
},
get level () {
return scope.level;
},
get node () {
return scope.node; // TODO: remove in v2
}
};
return api.internals.property.completeAssign.call(this, superclass.prototype.proxy, proxy, proxyAccessors);
};
prototypeAccessors.data.get = function () {
return this._data;
};
Actionee.prototype._config = function _config (element, registration) {
superclass.prototype._config.call(this, element, registration);
if (this._type === null) {
this._sort(element);
this._isMuted = true;
return;
}
this._actionElement = new ActionElement(this.node, this._type, this.id, this._category, this.getAttribute(ActionAttributes.ACTION) || this._title, this._parameters, this.hasAttribute(ActionAttributes.RATING), this.hasAttribute(ActionAttributes.ACTION) || this._isForced);
if (this._isMuted) { this._actionElement.isMuted = true; }
this.addDescent(ActioneeEmission.REWIND, this.rewind.bind(this));
this._sort(element);
};
Actionee.prototype._sort = function _sort (element) {
var actionees = element.instances.filter(function (instance) { return instance.isActionee; }).sort(function (a, b) { return b.priority - a.priority; });
if (actionees.length <= 1) { return; }
actionees.forEach(function (actionee, index) { actionee.isMuted = index > 0; });
};
prototypeAccessors.isMuted.get = function () {
return this._actionElement ? this._actionElement.isMuted : this._isMuted;
};
prototypeAccessors.isMuted.set = function (value) {
this._isMuted = value;
if (this._actionElement) { this._actionElement.isMuted = value; }
};
prototypeAccessors.priority.get = function () {
return this._priority;
};
Actionee.prototype.setPriority = function setPriority (value) {
this._priority = value;
};
prototypeAccessors.isInteractive.get = function () {
return this.node.tagName === 'A' || this.node.tagName === 'BUTTON';
};
Actionee.prototype.detectInteractionType = function detectInteractionType (node) {
if (!node) { node = this.node; }
var tag = node.tagName;
var href = node.getAttribute('href');
var isDownload = node.hasAttribute('download');
var hostname = node.hostname;
switch (true) {
case tag !== 'A':
this._type = Type$1.CLICK;
break;
case isDownload:
this._type = Type$1.DOWNLOAD;
this.value = href;
break;
case hostname === location.hostname :
this._type = Type$1.INTERNAL;
this.value = href;
break;
case hostname.length > 0 :
this._type = Type$1.EXTERNAL;
this.value = href;
break;
default:
this._type = Type$1.CLICK;
break;
}
};
Actionee.prototype.setClickType = function setClickType () {
this._type = Type$1.CLICK;
};
Actionee.prototype.listenActionClick = function listenActionClick (target) {
if (target) {
this._clickTarget = target;
this._clickTarget.addEventListener('click', this._handlingClick, { capture: true });
} else { this.listenClick({ capture: true }); }
};
Actionee.prototype.handleClick = function handleClick () {
this.act();
};
Actionee.prototype.setImpressionType = function setImpressionType () {
this._type = Type$1.IMPRESSION;
};
Actionee.prototype.rewind = function rewind () {
if (this._actionElement) { this._actionElement.rewind(); }
};
Actionee.prototype.act = function act (data) {
if ( data === void 0 ) data = {};
if (this._actionElement !== undefined) {
this._data.component_value = this.value;
this._actionElement.act(Object.assign(this._data, data));
}
};
Actionee.prototype.getFirstText = function getFirstText (node) {
if (!node) { node = this.node; }
if (node.childNodes && node.childNodes.length > 0) {
for (var i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeType === Node.TEXT_NODE) {
var text = node.childNodes[i].textContent.trim();
if (text) {
return this.cropText(text);
}
}
}
for (var i$1 = 0; i$1 < node.childNodes.length; i$1++) {
var text$1 = this.getFirstText(node.childNodes[i$1]);
if (text$1) {
return this.cropText(text$1);
}
}
}
return '';
};
Actionee.prototype.cropText = function cropText (text, length) {
return text.length > 50 ? ((text.substring(0, 50).trim()) + "[...]") : text;
};
Actionee.prototype.getInteractionLabel = function getInteractionLabel () {
var title = this.getAttribute('title');
if (title) { return this.cropText(title); }
var text = this.getFirstText();
if (text) { return text; }
var img = this.node.querySelector('img');
if (img) {
var alt = img.getAttribute('alt');
if (alt) { return this.cropText(alt); }
}
return null;
};
Actionee.prototype.getHeadingLabel = function getHeadingLabel (length) {
var this$1$1 = this;
if ( length === void 0 ) length = 6;
var selector = Array.from({ length: length }, function (v, i) { return ("h" + (i + 1)); }).join(',');
var headings = Array.from(this.querySelectorAll(selector)).filter(function (heading) { return (this$1$1.node.compareDocumentPosition(heading) & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0; });
if (headings.length) {
for (var i = 0, list = headings; i < list.length; i += 1) {
var heading = list[i];
var text = this.getFirstText(heading);
if (text) { return text; }
}
}
};
Actionee.prototype.detectLevel = function detectLevel (node) {
if (!node) { node = this.node; }
var selector = Array.from({ length: 6 }, function (v, i) { return ("h" + (i + 1)); }).join(',');
var levels = Array.from(node.querySelectorAll(selector)).map(function (heading) { return Number(heading.tagName.charAt(1)); });
if (levels.length) { this._level = Math.min.apply(null, levels) - 1; }
};
Actionee.prototype.validate = function validate (target) {
return true;
};
prototypeAccessors.actionElement.get = function () {
return this._actionElement;
};
prototypeAccessors.label.get = function () {
return null;
};
prototypeAccessors.value.get = function () {
return this._value || this.label;
};
prototypeAccessors.value.set = function (value) {
this._value = value;
};
prototypeAccessors.isActionee.get = function () {
return true;
};
prototypeAccessors.level.get = function () {
return this._level;
};
prototypeAccessors.type.get = function () {
return this._type;
};
Actionee.prototype.dispose = function dispose () {
if (this._clickTarget) {
this._clickTarget.removeEventListener('click', this._handlingClick);
}
superclass.prototype.dispose.call(this);
};
Object.defineProperties( Actionee.prototype, prototypeAccessors );
Object.defineProperties( Actionee, staticAccessors );
return Actionee;
}(api.core.Instance));
var AttributeActionee = /*@__PURE__*/(function (Actionee) {
function AttributeActionee () {
Actionee.call(this, 100, '', null, true);
}
if ( Actionee ) AttributeActionee.__proto__ = Actionee;
AttributeActionee.prototype = Object.create( Actionee && Actionee.prototype );
AttributeActionee.prototype.constructor = AttributeActionee;
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'AttributeActionee';
};
AttributeActionee.prototype.init = function init () {
this._attribute = this.registration.selector.replace(/[[\]]/g, '');
var id = this._attribute.split('-').pop();
this._type = Object.values(Type$1).filter(function (type) { return type.id === id; })[0];
this._title = this.getAttribute(this._attribute);
if (this._type === Type$1.CLICK) { this.detectInteractionType(); }
switch (this._type.method) {
case 'eventListener':
this.listen(this._type.event, this.handleEvent.bind(this));
break;
case 'change':
this.listen(this._type.event, this.handleChange.bind(this));
break;
}
};
AttributeActionee.prototype.handleEvent = function handleEvent (e) {
this._actionElement.act();
};
AttributeActionee.prototype.handleChange = function handleChange (e) {
this._actionElement.act({ change_value: e.target.value });
};
AttributeActionee.prototype.dispose = function dispose () {
this._actionElement.dispose();
Actionee.prototype.dispose.call(this);
};
Object.defineProperties( AttributeActionee, staticAccessors );
return AttributeActionee;
}(Actionee));
var integrateAttributes = function () {
Object.values(Type$1)
.filter(function (type) { return type.attributed; })
.forEach(function (type) { return api.internals.register(api.internals.ns.attr.selector(("analytics-" + (type.id))), AttributeActionee); });
};
var ButtonEmission = {
CLICK: api.internals.ns.emission('button', 'click')
};
var ComponentActionee = /*@__PURE__*/(function (Actionee) {
function ComponentActionee (priority) {
if ( priority === void 0 ) priority = -1;
Actionee.call(this, priority, 'dsfr_component');
}
if ( Actionee ) ComponentActionee.__proto__ = Actionee;
ComponentActionee.prototype = Object.create( Actionee && Actionee.prototype );
ComponentActionee.prototype.constructor = ComponentActionee;
var prototypeAccessors = { proxy: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ComponentActionee';
};
prototypeAccessors.proxy.get = function () {
var scope = this;
var proxyAccessors = {
get component () {
return scope.component;
}
};
return api.internals.property.completeAssign.call(this, Actionee.prototype.proxy, proxyAccessors);
};
ComponentActionee.prototype.setDiscloseType = function setDiscloseType () {
this._type = Type$1.DISCLOSE;
};
ComponentActionee.prototype.listenDisclose = function listenDisclose () {
this.listen(api.core.DisclosureEvent.DISCLOSE, this._handleDisclose.bind(this), { capture: true });
};
ComponentActionee.prototype._handleDisclose = function _handleDisclose () {
this.act();
};
ComponentActionee.prototype.setChangeType = function setChangeType () {
this._type = Type$1.CHANGE;
};
ComponentActionee.prototype.listenChange = function listenChange () {
this.listen('change', this._handleChange.bind(this), { capture: true });
};
ComponentActionee.prototype._handleChange = function _handleChange (e) {
if (e.target && e.target.value) {
this.setChangeValue(e);
this.act();
}
};
ComponentActionee.prototype.setChangeValue = function setChangeValue (e) {
this.value = e.target.value;
};
ComponentActionee.prototype.listenInputValidation = function listenInputValidation (node, type, isSendingInputValue) {
if ( type === void 0 ) type = Type$1.CLICK;
if ( isSendingInputValue === void 0 ) isSendingInputValue = false;
if (!node) { node = this.node; }
this._type = type;
this._isSendingInputValue = isSendingInputValue;
this.addAscent(ButtonEmission.CLICK, this._actValidatedInput.bind(this));
var button = this.element.getDescendantInstances('ButtonActionee', null, true)[0];
if (button) { button.isMuted = true; }
this._validatedInput = node.querySelector('input');
this._handlingInputValidation = this._handleInputValidation.bind(this);
if (this._validatedInput) { this._validatedInput.addEventListener('keydown', this._handlingInputValidation); }
};
ComponentActionee.prototype._handleInputValidation = function _handleInputValidation (e) {
if (e.keyCode === 13) { this._actValidatedInput(); }
};
ComponentActionee.prototype._actValidatedInput = function _actValidatedInput () {
if (this._isActingValidatedInput) { return; }
this._isActingValidatedInput = true;
if (this._isSendingInputValue) { this.value = this._validatedInput.value.trim(); }
this.act();
this.request(this._actedValidatedInput.bind(this));
};
ComponentActionee.prototype._actedValidatedInput = function _actedValidatedInput () {
this._isActingValidatedInput = false;
};
ComponentActionee.prototype.setCheckType = function setCheckType () {
this._type = Type$1.CHECK;
};
ComponentActionee.prototype.detectCheckableType = function detectCheckableType () {
var isChecked = this.node.checked;
this._type = isChecked ? Type$1.UNCHECK : Type$1.CHECK;
};
ComponentActionee.prototype.listenCheckable = function listenCheckable () {
this.listen('change', this._handleCheckable.bind(this), { capture: true });
};
ComponentActionee.prototype._handleCheckable = function _handleCheckable (e) {
if (e.target && e.target.value !== 'on') {
this.value = e.target.value;
}
switch (true) {
case this._type === Type$1.CHECK && e.target.checked:
case this._type === Type$1.UNCHECK && !e.target.checked:
this.act();
break;
}
};
ComponentActionee.prototype.detectPressableType = function detectPressableType () {
var isPressable = this.node.hasAttribute('aria-pressed');
if (isPressable) {
var isPressed = this.node.getAttribute('aria-pressed') === 'true';
this._type = isPressed ? Type$1.RELEASE : Type$1.PRESS;
}
return isPressable;
};
ComponentActionee.prototype.listenPressable = function listenPressable () {
this.listen('click', this._handlePressable.bind(this), { capture: true });
};
ComponentActionee.prototype._handlePressable = function _handlePressable (e) {
switch (true) {
case this._type === Type$1.PRESS && e.target.getAttribute('aria-pressed') === 'false':
case this._type === Type$1.RELEASE && e.target.getAttribute('aria-pressed') === 'true':
this.act();
break;
}
};
ComponentActionee.prototype.setDismissType = function setDismissType () {
this._type = Type$1.DISMISS;
};
prototypeAccessors.component.get = function () {
return null;
};
ComponentActionee.prototype.dispose = function dispose () {
if (this._validatedInput) {
this._validatedInput.removeEventListener('keydown', this._handlingInputValidation);
}
Actionee.prototype.dispose.call(this);
};
Object.defineProperties( ComponentActionee.prototype, prototypeAccessors );
Object.defineProperties( ComponentActionee, staticAccessors );
return ComponentActionee;
}(Actionee));
var AccordionSelector = {
ACCORDION: api.internals.ns.selector('accordion'),
TITLE: api.internals.ns.selector('accordion__title')
};
var ID$x = 'accordion';
var AccordionButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function AccordionButtonActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) AccordionButtonActionee.__proto__ = ComponentActionee;
AccordionButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
AccordionButtonActionee.prototype.constructor = AccordionButtonActionee;
var prototypeAccessors = { button: { configurable: true },label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'AccordionButtonActionee';
};
AccordionButtonActionee.prototype.init = function init () {
this.isMuted = true;
};
prototypeAccessors.button.get = function () {
return this.element.getInstance('CollapseButton');
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'bouton d\'accordéon';
};
prototypeAccessors.component.get = function () {
return ID$x;
};
Object.defineProperties( AccordionButtonActionee.prototype, prototypeAccessors );
Object.defineProperties( AccordionButtonActionee, staticAccessors );
return AccordionButtonActionee;
}(ComponentActionee));
var AccordionActionee = /*@__PURE__*/(function (ComponentActionee) {
function AccordionActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) AccordionActionee.__proto__ = ComponentActionee;
AccordionActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
AccordionActionee.prototype.constructor = AccordionActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'AccordionActionee';
};
AccordionActionee.prototype.init = function init () {
this.setDiscloseType();
this.wrapper = this.node.closest(AccordionSelector.ACCORDION);
this.detectLevel(this.wrapper);
this.register(("[aria-controls=\"" + (this.id) + "\"]"), AccordionButtonActionee);
this.listenDisclose();
};
prototypeAccessors.label.get = function () {
if (this.wrapper) {
var title = this.wrapper.querySelector(AccordionSelector.TITLE);
if (title) {
var text = this.getFirstText(title);
if (text) { return text; }
}
}
var instance = this.element.getInstance('Collapse');
if (instance) {
var button = instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button) {
var text$1 = this.getFirstText(button);
if (text$1) { return text$1; }
}
}
return 'accordéon';
};
prototypeAccessors.component.get = function () {
return ID$x;
};
AccordionActionee.prototype.dispose = function dispose () {
ComponentActionee.prototype.dispose.call(this);
};
Object.defineProperties( AccordionActionee.prototype, prototypeAccessors );
Object.defineProperties( AccordionActionee, staticAccessors );
return AccordionActionee;
}(ComponentActionee));
var integrateAccordion = function () {
if (api.accordion) {
api.internals.register(api.accordion.AccordionSelector.COLLAPSE, AccordionActionee);
}
};
var AlertSelector = {
ALERT: api.internals.ns.selector('alert'),
TITLE: api.internals.ns.selector('alert__title')
};
var ID$w = 'alert';
var AlertActionee = /*@__PURE__*/(function (ComponentActionee) {
function AlertActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) AlertActionee.__proto__ = ComponentActionee;
AlertActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
AlertActionee.prototype.constructor = AlertActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'AlertActionee';
};
prototypeAccessors.label.get = function () {
var alertTitle = this.node.querySelector(AlertSelector.TITLE);
if (alertTitle) {
var text = this.getFirstText(alertTitle);
if (text) { return text; }
}
return 'alerte';
};
prototypeAccessors.component.get = function () {
return ID$w;
};
Object.defineProperties( AlertActionee.prototype, prototypeAccessors );
Object.defineProperties( AlertActionee, staticAccessors );
return AlertActionee;
}(ComponentActionee));
var integrateAlert = function () {
api.internals.register(AlertSelector.ALERT, AlertActionee);
};
var BreadcrumbSelector = {
LINK: ((api.internals.ns.selector('breadcrumb__link')) + ":not([aria-current])"),
COLLAPSE: ((api.internals.ns.selector('breadcrumb')) + " " + (api.internals.ns.selector('collapse')))
};
var ID$v = 'breadcrumb';
var BreadcrumbActionee = /*@__PURE__*/(function (ComponentActionee) {
function BreadcrumbActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) BreadcrumbActionee.__proto__ = ComponentActionee;
BreadcrumbActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
BreadcrumbActionee.prototype.constructor = BreadcrumbActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'BreadcrumbActionee';
};
prototypeAccessors.label.get = function () {
return 'fil d\'ariane';
};
prototypeAccessors.component.get = function () {
return ID$v;
};
Object.defineProperties( BreadcrumbActionee.prototype, prototypeAccessors );
Object.defineProperties( BreadcrumbActionee, staticAccessors );
return BreadcrumbActionee;
}(ComponentActionee));
var BreadcrumbLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function BreadcrumbLinkActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) BreadcrumbLinkActionee.__proto__ = ComponentActionee;
BreadcrumbLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
BreadcrumbLinkActionee.prototype.constructor = BreadcrumbLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'BreadcrumbLinkActionee';
};
BreadcrumbLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
BreadcrumbLinkActionee.prototype.handleClick = function handleClick () {
this.act();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien fil d\'ariane';
};
prototypeAccessors.component.get = function () {
return null;
};
Object.defineProperties( BreadcrumbLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( BreadcrumbLinkActionee, staticAccessors );
return BreadcrumbLinkActionee;
}(ComponentActionee));
var integrateBreadcrumb = function () {
if (api.breadcrumb) {
api.internals.register(BreadcrumbSelector.COLLAPSE, BreadcrumbActionee);
api.internals.register(BreadcrumbSelector.LINK, BreadcrumbLinkActionee);
}
};
var ButtonSelector = {
BUTTON: ((api.internals.ns.selector('btn')) + ":not(" + (api.internals.ns.selector('btn--close')) + ")")
};
var ID$u = 'button';
var ButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function ButtonActionee () {
ComponentActionee.call(this, 1);
this._data = {};
}
if ( ComponentActionee ) ButtonActionee.__proto__ = ComponentActionee;
ButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ButtonActionee.prototype.constructor = ButtonActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ButtonActionee';
};
ButtonActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
ButtonActionee.prototype.handleClick = function handleClick () {
this.ascend(ButtonEmission.CLICK);
this.act();
};
prototypeAccessors.label.get = function () {
if (this.node.tagName === 'input') {
switch (this.node.type) {
case 'button':
case 'submit':
if (this.hasAttribute('value')) { return this.getAttribute('value'); }
}
}
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'bouton';
};
prototypeAccessors.component.get = function () {
return ID$u;
};
Object.defineProperties( ButtonActionee.prototype, prototypeAccessors );
Object.defineProperties( ButtonActionee, staticAccessors );
return ButtonActionee;
}(ComponentActionee));
var integrateButton = function () {
api.internals.register(ButtonSelector.BUTTON, ButtonActionee);
};
var CalloutSelector = {
CALLOUT: api.internals.ns.selector('callout'),
TITLE: api.internals.ns.selector('callout__title')
};
var ID$t = 'callout';
var CalloutActionee = /*@__PURE__*/(function (ComponentActionee) {
function CalloutActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) CalloutActionee.__proto__ = ComponentActionee;
CalloutActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
CalloutActionee.prototype.constructor = CalloutActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'CalloutActionee';
};
prototypeAccessors.label.get = function () {
var calloutTitle = this.node.querySelector(CalloutSelector.TITLE);
if (calloutTitle) {
var text = this.getFirstText(calloutTitle);
if (text) { return text; }
}
return 'mise en avant';
};
prototypeAccessors.component.get = function () {
return ID$t;
};
Object.defineProperties( CalloutActionee.prototype, prototypeAccessors );
Object.defineProperties( CalloutActionee, staticAccessors );
return CalloutActionee;
}(ComponentActionee));
var integrateCallout = function () {
api.internals.register(CalloutSelector.CALLOUT, CalloutActionee);
};
var CardSelector = {
CARD: api.internals.ns.selector('card'),
LINK: ((api.internals.ns.selector('card__title')) + " a, " + (api.internals.ns.selector('card__title')) + " button"),
TITLE: api.internals.ns.selector('card__title')
};
var ID$s = 'card';
var CardActionee = /*@__PURE__*/(function (ComponentActionee) {
function CardActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) CardActionee.__proto__ = ComponentActionee;
CardActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
CardActionee.prototype.constructor = CardActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'CardActionee';
};
CardActionee.prototype.init = function init () {
var link = this.node.querySelector(CardSelector.LINK);
if (link) {
this.link = link;
this.detectInteractionType(link);
this.listenActionClick(link);
}
};
prototypeAccessors.label.get = function () {
var cardTitle = this.node.querySelector(CardSelector.TITLE);
if (cardTitle) {
var text = this.getFirstText(cardTitle);
if (text) { return text; }
}
var heading = this.getHeadingLabel();
if (heading) { return heading; }
return 'carte';
};
prototypeAccessors.component.get = function () {
return ID$s;
};
Object.defineProperties( CardActionee.prototype, prototypeAccessors );
Object.defineProperties( CardActionee, staticAccessors );
return CardActionee;
}(ComponentActionee));
var integrateCard = function () {
api.internals.register(CardSelector.CARD, CardActionee);
};
var CheckboxSelector = {
INPUT: api.internals.ns.selector('checkbox-group [type="checkbox"]')
};
var ID$r = 'checkbox';
var CheckboxActionee = /*@__PURE__*/(function (ComponentActionee) {
function CheckboxActionee () {
ComponentActionee.call(this, 1);
this._data = {};
}
if ( ComponentActionee ) CheckboxActionee.__proto__ = ComponentActionee;
CheckboxActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
CheckboxActionee.prototype.constructor = CheckboxActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'CheckboxActionee';
};
CheckboxActionee.prototype.init = function init () {
this.detectCheckableType();
this.listenCheckable();
};
prototypeAccessors.label.get = function () {
var label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));
if (label) {
var text = this.getFirstText(label);
if (text) { return text; }
}
return 'case à cocher';
};
prototypeAccessors.component.get = function () {
return ID$r;
};
Object.defineProperties( CheckboxActionee.prototype, prototypeAccessors );
Object.defineProperties( CheckboxActionee, staticAccessors );
return CheckboxActionee;
}(ComponentActionee));
var integrateCheckbox = function () {
api.internals.register(CheckboxSelector.INPUT, CheckboxActionee);
};
var ConnectSelector = {
CONNECT: api.internals.ns.selector('connect'),
LINK: api.internals.ns.selector('connect + * a, connect + a')
};
var ID$q = 'connect';
var ConnectActionee = /*@__PURE__*/(function (ComponentActionee) {
function ConnectActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) ConnectActionee.__proto__ = ComponentActionee;
ConnectActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ConnectActionee.prototype.constructor = ConnectActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ConnectActionee';
};
ConnectActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
if (this.node.classList.contains('fr-connect--plus')) { return 'FranceConnect+'; }
return 'FranceConnect';
};
prototypeAccessors.component.get = function () {
return ID$q;
};
Object.defineProperties( ConnectActionee.prototype, prototypeAccessors );
Object.defineProperties( ConnectActionee, staticAccessors );
return ConnectActionee;
}(ComponentActionee));
var ConnectLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function ConnectLinkActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) ConnectLinkActionee.__proto__ = ComponentActionee;
ConnectLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ConnectLinkActionee.prototype.constructor = ConnectLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ConnectLinkActionee';
};
ConnectLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
return this.getFirstText() || 'qu\'est-ce que FranceConnect ?';
};
prototypeAccessors.component.get = function () {
return ID$q;
};
Object.defineProperties( ConnectLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( ConnectLinkActionee, staticAccessors );
return ConnectLinkActionee;
}(ComponentActionee));
var integrateConnect = function () {
api.internals.register(ConnectSelector.CONNECT, ConnectActionee);
api.internals.register(ConnectSelector.LINK, ConnectLinkActionee);
};
var ConsentSelector = {
BANNER: api.internals.ns.selector('consent-banner')
};
var ID$p = 'consent';
var ConsentActionee = /*@__PURE__*/(function (ComponentActionee) {
function ConsentActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) ConsentActionee.__proto__ = ComponentActionee;
ConsentActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ConsentActionee.prototype.constructor = ConsentActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ConsentActionee';
};
prototypeAccessors.label.get = function () {
return 'gestionnaire de consentement';
};
prototypeAccessors.component.get = function () {
return ID$p;
};
Object.defineProperties( ConsentActionee.prototype, prototypeAccessors );
Object.defineProperties( ConsentActionee, staticAccessors );
return ConsentActionee;
}(ComponentActionee));
var integrateConsent = function () {
api.internals.register(ConsentSelector.BANNER, ConsentActionee);
};
var DownloadSelector = {
LINK: api.internals.ns.selector('download__link')
};
var ID$o = 'download';
var DownloadActionee = /*@__PURE__*/(function (ComponentActionee) {
function DownloadActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) DownloadActionee.__proto__ = ComponentActionee;
DownloadActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
DownloadActionee.prototype.constructor = DownloadActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'DownloadActionee';
};
DownloadActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var text = this.getFirstText();
if (text) { return text; }
return 'téléchargement';
};
prototypeAccessors.component.get = function () {
return ID$o;
};
Object.defineProperties( DownloadActionee.prototype, prototypeAccessors );
Object.defineProperties( DownloadActionee, staticAccessors );
return DownloadActionee;
}(ComponentActionee));
var integrateDownload = function () {
api.internals.register(DownloadSelector.LINK, DownloadActionee);
};
var FollowSelector = {
FOLLOW: api.internals.ns.selector('follow'),
NEWSLETTER_INPUT_GROUP: api.internals.ns.selector('follow__newsletter') + ' ' + api.internals.ns.selector('input-group')
};
var ID$n = 'follow';
var FollowActionee = /*@__PURE__*/(function (ComponentActionee) {
function FollowActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) FollowActionee.__proto__ = ComponentActionee;
FollowActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
FollowActionee.prototype.constructor = FollowActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'FollowActionee';
};
FollowActionee.prototype.init = function init () {
this._inputGroup = this.querySelector(FollowSelector.NEWSLETTER_INPUT_GROUP);
if (this._inputGroup) {
this.listenInputValidation(this._inputGroup, Type$1.SUBSCRIBE);
var input = this.element.getDescendantInstances('InputActionee', null, true)[0];
if (input) { input.isMuted = true; }
}
};
prototypeAccessors.label.get = function () {
return 'lettre d\'information et réseaux sociaux';
};
prototypeAccessors.component.get = function () {
return ID$n;
};
Object.defineProperties( FollowActionee.prototype, prototypeAccessors );
Object.defineProperties( FollowActionee, staticAccessors );
return FollowActionee;
}(ComponentActionee));
var integrateFollow = function () {
api.internals.register(FollowSelector.FOLLOW, FollowActionee);
};
var FooterSelector = {
FOOTER: api.internals.ns.selector('footer'),
FOOTER_LINKS: ((api.internals.ns.selector('footer')) + " a[href], " + (api.internals.ns.selector('footer')) + " button")
};
var ID$m = 'footer';
var FooterActionee = /*@__PURE__*/(function (ComponentActionee) {
function FooterActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) FooterActionee.__proto__ = ComponentActionee;
FooterActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
FooterActionee.prototype.constructor = FooterActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'FooterActionee';
};
prototypeAccessors.label.get = function () {
return 'pied de page';
};
prototypeAccessors.component.get = function () {
return ID$m;
};
Object.defineProperties( FooterActionee.prototype, prototypeAccessors );
Object.defineProperties( FooterActionee, staticAccessors );
return FooterActionee;
}(ComponentActionee));
var FooterLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function FooterLinkActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) FooterLinkActionee.__proto__ = ComponentActionee;
FooterLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
FooterLinkActionee.prototype.constructor = FooterLinkActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'FooterLinkActionee';
};
FooterLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var label = this.getInteractionLabel();
if (label) { return label; }
return 'lien pied de page';
};
Object.defineProperties( FooterLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( FooterLinkActionee, staticAccessors );
return FooterLinkActionee;
}(ComponentActionee));
var integrateFooter = function () {
api.internals.register(FooterSelector.FOOTER, FooterActionee);
api.internals.register(FooterSelector.FOOTER_LINKS, FooterLinkActionee);
};
var ID$l = 'header';
var HeaderActionee = /*@__PURE__*/(function (ComponentActionee) {
function HeaderActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) HeaderActionee.__proto__ = ComponentActionee;
HeaderActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HeaderActionee.prototype.constructor = HeaderActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HeaderActionee';
};
prototypeAccessors.label.get = function () {
return 'en-tête';
};
prototypeAccessors.component.get = function () {
return ID$l;
};
Object.defineProperties( HeaderActionee.prototype, prototypeAccessors );
Object.defineProperties( HeaderActionee, staticAccessors );
return HeaderActionee;
}(ComponentActionee));
var HeaderModalButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function HeaderModalButtonActionee () {
ComponentActionee.call(this, 4);
}
if ( ComponentActionee ) HeaderModalButtonActionee.__proto__ = ComponentActionee;
HeaderModalButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HeaderModalButtonActionee.prototype.constructor = HeaderModalButtonActionee;
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HeaderModalButtonActionee';
};
Object.defineProperties( HeaderModalButtonActionee, staticAccessors );
return HeaderModalButtonActionee;
}(ComponentActionee));
var HeaderModalActionee = /*@__PURE__*/(function (ComponentActionee) {
function HeaderModalActionee () {
ComponentActionee.call(this, 0);
}
if ( ComponentActionee ) HeaderModalActionee.__proto__ = ComponentActionee;
HeaderModalActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HeaderModalActionee.prototype.constructor = HeaderModalActionee;
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HeaderModalActionee';
};
HeaderModalActionee.prototype.init = function init () {
if (this.isBreakpoint(api.core.Breakpoints.LG)) {
this.setPriority(4);
this.register(("[aria-controls=\"" + (this.id) + "\"]"), HeaderModalButtonActionee);
}
};
Object.defineProperties( HeaderModalActionee, staticAccessors );
return HeaderModalActionee;
}(ComponentActionee));
var HeaderSelector = {
TOOLS_BUTTON: ((api.internals.ns.selector('header__tools-links')) + " " + (api.internals.ns.selector('btns-group')) + " " + (api.internals.ns.selector('btn'))),
MENU_BUTTON: ((api.internals.ns.selector('header__menu-links')) + " " + (api.internals.ns.selector('btns-group')) + " " + (api.internals.ns.selector('btn')))
};
var HeaderToolsButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function HeaderToolsButtonActionee () {
ComponentActionee.call(this, 4);
}
if ( ComponentActionee ) HeaderToolsButtonActionee.__proto__ = ComponentActionee;
HeaderToolsButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HeaderToolsButtonActionee.prototype.constructor = HeaderToolsButtonActionee;
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HeaderToolsButtonActionee';
};
HeaderToolsButtonActionee.prototype.init = function init () {
if (this.isBreakpoint(api.core.Breakpoints.LG)) { this._priority = -1; }
};
Object.defineProperties( HeaderToolsButtonActionee, staticAccessors );
return HeaderToolsButtonActionee;
}(ComponentActionee));
var HeaderMenuButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function HeaderMenuButtonActionee () {
ComponentActionee.apply(this, arguments);
}
if ( ComponentActionee ) HeaderMenuButtonActionee.__proto__ = ComponentActionee;
HeaderMenuButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HeaderMenuButtonActionee.prototype.constructor = HeaderMenuButtonActionee;
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HeaderMenuButtonActionee';
};
HeaderMenuButtonActionee.prototype.init = function init () {
if (this.isBreakpoint(api.core.Breakpoints.LG)) { this.setPriority(4); }
};
Object.defineProperties( HeaderMenuButtonActionee, staticAccessors );
return HeaderMenuButtonActionee;
}(ComponentActionee));
var integrateHeader = function () {
if (api.header) {
api.internals.register(api.header.HeaderSelector.HEADER, HeaderActionee);
api.internals.register(api.header.HeaderSelector.MODALS, HeaderModalActionee);
api.internals.register(HeaderSelector.TOOLS_BUTTON, HeaderToolsButtonActionee);
api.internals.register(HeaderSelector.MENU_BUTTON, HeaderMenuButtonActionee);
}
};
var HighlightSelector = {
HIGHLIGHT: api.internals.ns.selector('highlight')
};
var ID$k = 'highlight';
var HighlightActionee = /*@__PURE__*/(function (ComponentActionee) {
function HighlightActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) HighlightActionee.__proto__ = ComponentActionee;
HighlightActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
HighlightActionee.prototype.constructor = HighlightActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'HighlightActionee';
};
prototypeAccessors.label.get = function () {
return 'mise en exergue';
};
prototypeAccessors.component.get = function () {
return ID$k;
};
Object.defineProperties( HighlightActionee.prototype, prototypeAccessors );
Object.defineProperties( HighlightActionee, staticAccessors );
return HighlightActionee;
}(ComponentActionee));
var integrateHighlight = function () {
api.internals.register(HighlightSelector.HIGHLIGHT, HighlightActionee);
};
var LinkSelector = {
LINK: api.internals.ns.selector('link')
};
var ID$j = 'link';
var LinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function LinkActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) LinkActionee.__proto__ = ComponentActionee;
LinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
LinkActionee.prototype.constructor = LinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'LinkActionee';
};
LinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien';
};
prototypeAccessors.component.get = function () {
return ID$j;
};
Object.defineProperties( LinkActionee.prototype, prototypeAccessors );
Object.defineProperties( LinkActionee, staticAccessors );
return LinkActionee;
}(ComponentActionee));
var integrateLink = function () {
api.internals.register(LinkSelector.LINK, LinkActionee);
};
var InputSelector = {
INPUT: api.internals.ns.selector('input-group')
};
var ID$i = 'input';
var InputActionee = /*@__PURE__*/(function (ComponentActionee) {
function InputActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) InputActionee.__proto__ = ComponentActionee;
InputActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
InputActionee.prototype.constructor = InputActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'InputActionee';
};
InputActionee.prototype.init = function init () {
this._input = this.querySelector(api.internals.ns.selector('input'));
this._label = this.querySelector(api.internals.ns.selector('label'));
this._inputWrap = this.querySelector(api.internals.ns.selector('input-wrap'));
if (this._inputWrap) { this.listenInputValidation(this._inputWrap); }
};
prototypeAccessors.label.get = function () {
if (this._label) {
var text = this.getFirstText(this._label);
if (text) { return text; }
}
return 'champ de saisie';
};
prototypeAccessors.component.get = function () {
return ID$i;
};
Object.defineProperties( InputActionee.prototype, prototypeAccessors );
Object.defineProperties( InputActionee, staticAccessors );
return InputActionee;
}(ComponentActionee));
var integrateInput = function () {
api.internals.register(InputSelector.INPUT, InputActionee);
};
var ModalSelector = {
TITLE: api.internals.ns.selector('modal__title')
};
var ID$h = 'modal';
var ModalActionee = /*@__PURE__*/(function (ComponentActionee) {
function ModalActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) ModalActionee.__proto__ = ComponentActionee;
ModalActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ModalActionee.prototype.constructor = ModalActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ModalActionee';
};
ModalActionee.prototype.init = function init () {
this.setDiscloseType();
this.detectLevel();
this.listenDisclose();
};
prototypeAccessors.label.get = function () {
var title = this.node.querySelector(ModalSelector.TITLE);
if (title) {
var text = this.getFirstText(title);
if (text) { return text; }
}
var heading = this.getHeadingLabel(2);
if (heading) { return heading; }
var instance = this.element.getInstance('Modal');
if (instance) {
var button = instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button) {
var text$1 = this.getFirstText(button.node);
if (text$1) { return text$1; }
}
}
return 'modale';
};
prototypeAccessors.component.get = function () {
return ID$h;
};
Object.defineProperties( ModalActionee.prototype, prototypeAccessors );
Object.defineProperties( ModalActionee, staticAccessors );
return ModalActionee;
}(ComponentActionee));
var integrateModal = function () {
if (api.modal) {
api.internals.register(api.modal.ModalSelector.MODAL, ModalActionee);
}
};
var NavigationActionee = /*@__PURE__*/(function (ComponentActionee) {
function NavigationActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) NavigationActionee.__proto__ = ComponentActionee;
NavigationActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
NavigationActionee.prototype.constructor = NavigationActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'NavigationActionee';
};
prototypeAccessors.label.get = function () {
return 'navigation';
};
Object.defineProperties( NavigationActionee.prototype, prototypeAccessors );
Object.defineProperties( NavigationActionee, staticAccessors );
return NavigationActionee;
}(ComponentActionee));
var NavigationSelector = {
LINK: api.internals.ns.selector('nav__link'),
BUTTON: api.internals.ns.selector('nav__btn')
};
var ID$g = 'navigation';
var NavigationLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function NavigationLinkActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) NavigationLinkActionee.__proto__ = ComponentActionee;
NavigationLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
NavigationLinkActionee.prototype.constructor = NavigationLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'NavigationLinkActionee';
};
NavigationLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien de navigation';
};
prototypeAccessors.component.get = function () {
return ID$g;
};
Object.defineProperties( NavigationLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( NavigationLinkActionee, staticAccessors );
return NavigationLinkActionee;
}(ComponentActionee));
var NavigationSectionActionee = /*@__PURE__*/(function (ComponentActionee) {
function NavigationSectionActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) NavigationSectionActionee.__proto__ = ComponentActionee;
NavigationSectionActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
NavigationSectionActionee.prototype.constructor = NavigationSectionActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'NavigationSectionActionee';
};
NavigationSectionActionee.prototype.init = function init () {
this._wrapper = this.node.closest(api.navigation.NavigationSelector.ITEM);
};
prototypeAccessors.label.get = function () {
if (this._wrapper) {
var button = this._wrapper.querySelector(NavigationSelector.BUTTON);
if (button) {
var text = this.getFirstText(button);
if (text) { return text; }
}
}
var instance = this.element.getInstance('Collapse');
if (instance) {
var button$1 = instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button$1) {
var text$1 = this.getFirstText(button$1);
if (text$1) { return text$1; }
}
}
return 'section de navigation';
};
Object.defineProperties( NavigationSectionActionee.prototype, prototypeAccessors );
Object.defineProperties( NavigationSectionActionee, staticAccessors );
return NavigationSectionActionee;
}(ComponentActionee));
var integrateNavigation = function () {
if (api.navigation) {
api.internals.register(api.navigation.NavigationSelector.NAVIGATION, NavigationActionee);
api.internals.register(NavigationSelector.LINK, NavigationLinkActionee);
api.internals.register(api.navigation.NavigationSelector.COLLAPSE, NavigationSectionActionee);
}
};
var PaginationSelector = {
PAGINATION: api.internals.ns.selector('pagination'),
LINK: api.internals.ns.selector('pagination__link'),
NEXT_LINK: api.internals.ns.selector('pagination__link--next'),
LAST_LINK: api.internals.ns.selector('pagination__link--last'),
ANALYTICS_TOTAL: api.internals.ns.attr('analytics-page-total'),
CURRENT: '[aria-current="page"]'
};
var ID$f = 'pagination';
var PaginationActionee = /*@__PURE__*/(function (ComponentActionee) {
function PaginationActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) PaginationActionee.__proto__ = ComponentActionee;
PaginationActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
PaginationActionee.prototype.constructor = PaginationActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'PaginationActionee';
};
PaginationActionee.prototype.init = function init () {
this.setPagination();
};
prototypeAccessors.label.get = function () {
return 'pagination';
};
prototypeAccessors.component.get = function () {
return ID$f;
};
PaginationActionee.prototype.setPagination = function setPagination () {
var currentLink = this.node.querySelector(PaginationSelector.CURRENT);
if (!currentLink) { return; }
var currentLabel = this.getFirstText(currentLink);
if (!currentLabel) { return; }
var current = this.getInt(currentLabel);
if (isNaN(current)) { return; }
api.analytics.page.current = current;
var total = this.getTotalPage();
if (isNaN(total)) { return; }
api.analytics.page.total = total;
};
PaginationActionee.prototype.getTotalPage = function getTotalPage () {
var attr = parseInt(this.node.getAttribute(PaginationSelector.ANALYTICS_TOTAL));
if (!isNaN(attr)) { return attr; }
var links = this.node.querySelectorAll(((PaginationSelector.LINK) + ":not(" + (PaginationSelector.NEXT_LINK) + "):not(" + (PaginationSelector.LAST_LINK) + ")"));
if (!links) { return null; }
var totalLabel = this.getFirstText(links[links.length - 1]);
if (!totalLabel) { return null; }
return this.getInt(totalLabel);
};
PaginationActionee.prototype.getInt = function getInt (val) {
var ints = val.match(/\d+/);
if (!ints || ints.length === 0) { return null; }
return parseInt(ints[0]);
};
Object.defineProperties( PaginationActionee.prototype, prototypeAccessors );
Object.defineProperties( PaginationActionee, staticAccessors );
return PaginationActionee;
}(ComponentActionee));
var PaginationLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function PaginationLinkActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) PaginationLinkActionee.__proto__ = ComponentActionee;
PaginationLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
PaginationLinkActionee.prototype.constructor = PaginationLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'PaginationLinkActionee';
};
PaginationLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien pagination';
};
prototypeAccessors.component.get = function () {
return null;
};
Object.defineProperties( PaginationLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( PaginationLinkActionee, staticAccessors );
return PaginationLinkActionee;
}(ComponentActionee));
var integratePagination = function () {
api.internals.register(PaginationSelector.PAGINATION, PaginationActionee);
api.internals.register(PaginationSelector.LINK, PaginationLinkActionee);
};
var QuoteSelector = {
QUOTE: api.internals.ns.selector('quote')
};
var ID$e = 'quote';
var QuoteActionee = /*@__PURE__*/(function (ComponentActionee) {
function QuoteActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) QuoteActionee.__proto__ = ComponentActionee;
QuoteActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
QuoteActionee.prototype.constructor = QuoteActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'QuoteActionee';
};
prototypeAccessors.label.get = function () {
var blockquote = this.node.querySelector('blockquote');
if (blockquote) {
var firstText = this.getFirstText(blockquote);
if (firstText) {
return firstText;
}
}
return 'citation';
};
prototypeAccessors.component.get = function () {
return ID$e;
};
Object.defineProperties( QuoteActionee.prototype, prototypeAccessors );
Object.defineProperties( QuoteActionee, staticAccessors );
return QuoteActionee;
}(ComponentActionee));
var integrateQuote = function () {
api.internals.register(QuoteSelector.QUOTE, QuoteActionee);
};
var RadioSelector = {
INPUT: api.internals.ns.selector('radio-group [type="radio"]')
};
var FormSelector = {
LABEL: api.internals.ns.selector('label'),
FIELDSET: api.internals.ns.selector('fieldset'),
LEGEND: api.internals.ns.selector('fieldset__legend')
};
var ID$d = 'radio';
var RadioActionee = /*@__PURE__*/(function (ComponentActionee) {
function RadioActionee () {
ComponentActionee.call(this, 1);
this._data = {};
}
if ( ComponentActionee ) RadioActionee.__proto__ = ComponentActionee;
RadioActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
RadioActionee.prototype.constructor = RadioActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'RadioActionee';
};
RadioActionee.prototype.init = function init () {
this.setCheckType();
this.listenCheckable();
};
prototypeAccessors.label.get = function () {
var parts = [];
var fieldset = this.node.closest(FormSelector.FIELDSET);
if (fieldset) {
var legend = fieldset.querySelector(FormSelector.LEGEND);
if (legend) {
var firstTextLegend = this.getFirstText(legend);
if (firstTextLegend) { parts.push(firstTextLegend); }
}
}
var label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));
if (label) {
var firstTextLabel = this.getFirstText(label);
if (firstTextLabel) { parts.push(firstTextLabel); }
}
return parts.join(' ');
};
prototypeAccessors.component.get = function () {
return ID$d;
};
Object.defineProperties( RadioActionee.prototype, prototypeAccessors );
Object.defineProperties( RadioActionee, staticAccessors );
return RadioActionee;
}(ComponentActionee));
var integrateRadio = function () {
api.internals.register(RadioSelector.INPUT, RadioActionee);
};
var SearchSelector = {
SEARCH_BAR: api.internals.ns.selector('search-bar')
};
var ID$c = 'search';
var SearchActionee = /*@__PURE__*/(function (ComponentActionee) {
function SearchActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) SearchActionee.__proto__ = ComponentActionee;
SearchActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SearchActionee.prototype.constructor = SearchActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SearchActionee';
};
SearchActionee.prototype.init = function init () {
this.listenInputValidation(this.node, Type$1.SEARCH, true);
};
prototypeAccessors.label.get = function () {
return 'barre de recherche';
};
prototypeAccessors.component.get = function () {
return ID$c;
};
Object.defineProperties( SearchActionee.prototype, prototypeAccessors );
Object.defineProperties( SearchActionee, staticAccessors );
return SearchActionee;
}(ComponentActionee));
var integrateSearch = function () {
api.internals.register(SearchSelector.SEARCH_BAR, SearchActionee);
};
var SelectSelector = {
SELECT: api.internals.ns.selector('select')
};
var ID$b = 'select';
var SelectActionee = /*@__PURE__*/(function (ComponentActionee) {
function SelectActionee () {
ComponentActionee.call(this, 1);
this._data = {};
}
if ( ComponentActionee ) SelectActionee.__proto__ = ComponentActionee;
SelectActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SelectActionee.prototype.constructor = SelectActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SelectActionee';
};
SelectActionee.prototype.init = function init () {
this.setChangeType();
this.listenChange();
};
SelectActionee.prototype.setChangeValue = function setChangeValue (e) {
if (!e.target || !e.target.selectedOptions) { return; }
var value = Array.from(e.target.selectedOptions).map(function (option) { return option.text; }).join(' - ');
if (value) { this.value = value; }
};
prototypeAccessors.label.get = function () {
var label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));
if (label) {
var firstText = this.getFirstText(label);
if (firstText) { return firstText; }
}
return 'liste déroulante';
};
prototypeAccessors.component.get = function () {
return ID$b;
};
Object.defineProperties( SelectActionee.prototype, prototypeAccessors );
Object.defineProperties( SelectActionee, staticAccessors );
return SelectActionee;
}(ComponentActionee));
var integrateSelect = function () {
api.internals.register(SelectSelector.SELECT, SelectActionee);
};
var ShareSelector = {
SHARE: api.internals.ns.selector('share'),
TITLE: api.internals.ns.selector('share__title')
};
var ID$a = 'share';
var ShareActionee = /*@__PURE__*/(function (ComponentActionee) {
function ShareActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) ShareActionee.__proto__ = ComponentActionee;
ShareActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ShareActionee.prototype.constructor = ShareActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ShareActionee';
};
prototypeAccessors.label.get = function () {
var title = this.querySelector(ShareSelector.TITLE);
if (title) {
var firstText = this.getFirstText(title);
if (firstText) { return firstText; }
}
return 'boutons de partage';
};
prototypeAccessors.component.get = function () {
return ID$a;
};
Object.defineProperties( ShareActionee.prototype, prototypeAccessors );
Object.defineProperties( ShareActionee, staticAccessors );
return ShareActionee;
}(ComponentActionee));
var integrateShare = function () {
api.internals.register(ShareSelector.SHARE, ShareActionee);
};
var SidemenuSelector = {
SIDEMENU: api.internals.ns.selector('sidemenu'),
ITEM: api.internals.ns.selector('sidemenu__item'),
LINK: api.internals.ns.selector('sidemenu__link'),
BUTTON: api.internals.ns.selector('sidemenu__btn'),
TITLE: api.internals.ns.selector('sidemenu__title')
};
var SidemenuActionee = /*@__PURE__*/(function (ComponentActionee) {
function SidemenuActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) SidemenuActionee.__proto__ = ComponentActionee;
SidemenuActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SidemenuActionee.prototype.constructor = SidemenuActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SidemenuActionee';
};
prototypeAccessors.label.get = function () {
var sidemenu = this.node.closest(SidemenuSelector.SIDEMENU);
if (sidemenu) {
var title = sidemenu.querySelector(SidemenuSelector.TITLE);
if (title) {
var firstText = this.getFirstText(title);
if (firstText) { return firstText; }
}
}
return 'menu Latéral';
};
Object.defineProperties( SidemenuActionee.prototype, prototypeAccessors );
Object.defineProperties( SidemenuActionee, staticAccessors );
return SidemenuActionee;
}(ComponentActionee));
var ID$9 = 'sidemenu';
var SidemenuLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function SidemenuLinkActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) SidemenuLinkActionee.__proto__ = ComponentActionee;
SidemenuLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SidemenuLinkActionee.prototype.constructor = SidemenuLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SidemenuLinkActionee';
};
SidemenuLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien menu latéral';
};
prototypeAccessors.component.get = function () {
return ID$9;
};
Object.defineProperties( SidemenuLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( SidemenuLinkActionee, staticAccessors );
return SidemenuLinkActionee;
}(ComponentActionee));
var SidemenuSectionActionee = /*@__PURE__*/(function (ComponentActionee) {
function SidemenuSectionActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) SidemenuSectionActionee.__proto__ = ComponentActionee;
SidemenuSectionActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SidemenuSectionActionee.prototype.constructor = SidemenuSectionActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SidemenuSectionActionee';
};
SidemenuSectionActionee.prototype.init = function init () {
this._wrapper = this.node.closest(SidemenuSelector.ITEM);
};
prototypeAccessors.label.get = function () {
if (this._wrapper) {
var button = this._wrapper.querySelector(SidemenuSelector.BUTTON);
if (button) {
var firstText = this.getFirstText(button);
if (firstText) { return firstText; }
}
}
var instance = this.element.getInstance('Collapse');
if (instance) {
var button$1 = instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button$1) {
var firstTextBtn = this.getFirstText(button$1);
if (firstTextBtn) { return firstTextBtn; }
}
}
return 'section menu latéral';
};
Object.defineProperties( SidemenuSectionActionee.prototype, prototypeAccessors );
Object.defineProperties( SidemenuSectionActionee, staticAccessors );
return SidemenuSectionActionee;
}(ComponentActionee));
var integrateSidemenu = function () {
if (api.sidemenu) {
api.internals.register(SidemenuSelector.SIDEMENU, SidemenuActionee);
api.internals.register(SidemenuSelector.LINK, SidemenuLinkActionee);
api.internals.register(api.sidemenu.SidemenuSelector.COLLAPSE, SidemenuSectionActionee);
}
};
var SummarySelector = {
SUMMARY: api.internals.ns.selector('summary'),
LINK: api.internals.ns.selector('summary__link'),
TITLE: api.internals.ns.selector('summary__title'),
ITEM: ((api.internals.ns.selector('summary')) + " li")
};
var SummaryActionee = /*@__PURE__*/(function (ComponentActionee) {
function SummaryActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) SummaryActionee.__proto__ = ComponentActionee;
SummaryActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SummaryActionee.prototype.constructor = SummaryActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SummaryActionee';
};
prototypeAccessors.label.get = function () {
var title = this.node.querySelector(SummarySelector.TITLE);
if (title) {
var firstText = this.getFirstText(title);
if (firstText) { return firstText; }
}
return 'sommaire';
};
Object.defineProperties( SummaryActionee.prototype, prototypeAccessors );
Object.defineProperties( SummaryActionee, staticAccessors );
return SummaryActionee;
}(ComponentActionee));
var ID$8 = 'summary';
var SummaryLinkActionee = /*@__PURE__*/(function (ComponentActionee) {
function SummaryLinkActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) SummaryLinkActionee.__proto__ = ComponentActionee;
SummaryLinkActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SummaryLinkActionee.prototype.constructor = SummaryLinkActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SummaryLinkActionee';
};
SummaryLinkActionee.prototype.init = function init () {
this.detectInteractionType();
this.listenActionClick();
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'lien sommaire';
};
prototypeAccessors.component.get = function () {
return ID$8;
};
Object.defineProperties( SummaryLinkActionee.prototype, prototypeAccessors );
Object.defineProperties( SummaryLinkActionee, staticAccessors );
return SummaryLinkActionee;
}(ComponentActionee));
var SummarySectionActionee = /*@__PURE__*/(function (ComponentActionee) {
function SummarySectionActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) SummarySectionActionee.__proto__ = ComponentActionee;
SummarySectionActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
SummarySectionActionee.prototype.constructor = SummarySectionActionee;
var prototypeAccessors = { label: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'SummarySectionActionee';
};
SummarySectionActionee.prototype.init = function init () {
this._link = this.querySelector(SummarySelector.LINK);
};
SummarySectionActionee.prototype.validate = function validate (target) {
return this._link !== target;
};
prototypeAccessors.label.get = function () {
if (!this._link) { return null; }
var firstText = this.getFirstText(this._link);
if (firstText) { return firstText; }
return 'section sommaire';
};
Object.defineProperties( SummarySectionActionee.prototype, prototypeAccessors );
Object.defineProperties( SummarySectionActionee, staticAccessors );
return SummarySectionActionee;
}(ComponentActionee));
var integrateSummary = function () {
api.internals.register(SummarySelector.SUMMARY, SummaryActionee);
api.internals.register(SummarySelector.LINK, SummaryLinkActionee);
api.internals.register(SummarySelector.ITEM, SummarySectionActionee);
};
var ID$7 = 'tab';
var TabButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function TabButtonActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TabButtonActionee.__proto__ = ComponentActionee;
TabButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TabButtonActionee.prototype.constructor = TabButtonActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TabButtonActionee';
};
TabButtonActionee.prototype.init = function init () {
this.isMuted = true;
};
prototypeAccessors.label.get = function () {
var text = this.getFirstText();
if (text) { return text; }
return 'bouton onglet';
};
prototypeAccessors.component.get = function () {
return ID$7;
};
Object.defineProperties( TabButtonActionee.prototype, prototypeAccessors );
Object.defineProperties( TabButtonActionee, staticAccessors );
return TabButtonActionee;
}(ComponentActionee));
var TabActionee = /*@__PURE__*/(function (ComponentActionee) {
function TabActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TabActionee.__proto__ = ComponentActionee;
TabActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TabActionee.prototype.constructor = TabActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TabActionee';
};
TabActionee.prototype.init = function init () {
this.setDiscloseType();
this.register(("[aria-controls=\"" + (this.id) + "\"]"), TabButtonActionee);
this._instance = this.element.getInstance('TabPanel');
this.listenDisclose();
};
prototypeAccessors.label.get = function () {
var tabs = this.node.closest(api.tab.TabSelector.GROUP);
if (tabs) {
var tab = tabs.querySelector(((api.tab.TabSelector.LIST) + " [aria-controls=\"" + (this.id) + "\"]" + (api.tab.TabSelector.TAB)));
if (tab) {
var firstTextTab = this.getFirstText(tab);
if (firstTextTab) { return firstTextTab; }
}
}
var button = this._instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button) {
var firstTextBtn = this.getFirstText(button);
if (firstTextBtn) { return firstTextBtn; }
}
return 'onglet';
};
prototypeAccessors.component.get = function () {
return ID$7;
};
Object.defineProperties( TabActionee.prototype, prototypeAccessors );
Object.defineProperties( TabActionee, staticAccessors );
return TabActionee;
}(ComponentActionee));
var integrateTab = function () {
if (api.tab) {
api.internals.register(api.tab.TabSelector.PANEL, TabActionee);
}
};
var TableSelector = {
TABLE: api.internals.ns.selector('table')
};
var ID$6 = 'table';
var TableActionee = /*@__PURE__*/(function (ComponentActionee) {
function TableActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) TableActionee.__proto__ = ComponentActionee;
TableActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TableActionee.prototype.constructor = TableActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TableActionee';
};
prototypeAccessors.label.get = function () {
var caption = this.node.querySelector('caption');
if (caption) {
var firstText = this.getFirstText(caption);
if (firstText) { return firstText; }
}
return 'tableau';
};
prototypeAccessors.component.get = function () {
return ID$6;
};
Object.defineProperties( TableActionee.prototype, prototypeAccessors );
Object.defineProperties( TableActionee, staticAccessors );
return TableActionee;
}(ComponentActionee));
var integrateTable = function () {
api.internals.register(TableSelector.TABLE, TableActionee);
};
var TagSelector = {
TAG: api.internals.ns.selector('tag'),
PRESSABLE: '[aria-pressed]',
DISMISSIBLE: ("" + (api.internals.ns.selector('tag--dismiss', '')))
};
var ID$5 = 'tag';
var TagActionee = /*@__PURE__*/(function (ComponentActionee) {
function TagActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TagActionee.__proto__ = ComponentActionee;
TagActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TagActionee.prototype.constructor = TagActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TagActionee';
};
TagActionee.prototype.init = function init () {
switch (true) {
case this.detectPressableType():
this.listenPressable();
break;
case this.isInteractive && this.node.classList.contains(TagSelector.DISMISSIBLE):
this.setDismissType();
this.listenActionClick();
break;
case this.isInteractive:
this.detectInteractionType();
this.listenActionClick();
break;
}
};
prototypeAccessors.label.get = function () {
var firstText = this.getFirstText();
if (firstText) { return firstText; }
return 'tag';
};
prototypeAccessors.component.get = function () {
return ID$5;
};
Object.defineProperties( TagActionee.prototype, prototypeAccessors );
Object.defineProperties( TagActionee, staticAccessors );
return TagActionee;
}(ComponentActionee));
var integrateTag = function () {
api.internals.register(TagSelector.TAG, TagActionee);
};
var TileSelector = {
TILE: api.internals.ns.selector('tile'),
LINK: ((api.internals.ns.selector('tile__title')) + " a, " + (api.internals.ns.selector('tile__title')) + " button"),
TITLE: api.internals.ns.selector('tile__title')
};
var ID$4 = 'tile';
var TileActionee = /*@__PURE__*/(function (ComponentActionee) {
function TileActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) TileActionee.__proto__ = ComponentActionee;
TileActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TileActionee.prototype.constructor = TileActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TileActionee';
};
TileActionee.prototype.init = function init () {
var link = this.node.querySelector(TileSelector.LINK);
if (link) {
this.link = link;
this.detectInteractionType(link);
this.listenActionClick(link);
}
};
prototypeAccessors.label.get = function () {
var tileTitle = this.node.querySelector(TileSelector.TITLE);
if (tileTitle) { return this.getFirstText(tileTitle); }
var heading = this.getHeadingLabel();
if (heading) { return heading; }
return 'tuile';
};
prototypeAccessors.component.get = function () {
return ID$4;
};
Object.defineProperties( TileActionee.prototype, prototypeAccessors );
Object.defineProperties( TileActionee, staticAccessors );
return TileActionee;
}(ComponentActionee));
var integrateTile = function () {
api.internals.register(TileSelector.TILE, TileActionee);
};
var ToggleSelector = {
INPUT: api.internals.ns.selector('toggle [type="checkbox"]')
};
var ID$3 = 'toggle';
var ToggleActionee = /*@__PURE__*/(function (ComponentActionee) {
function ToggleActionee () {
ComponentActionee.call(this, 1);
this._data = {};
}
if ( ComponentActionee ) ToggleActionee.__proto__ = ComponentActionee;
ToggleActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
ToggleActionee.prototype.constructor = ToggleActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'ToggleActionee';
};
ToggleActionee.prototype.init = function init () {
this.detectCheckableType();
this.listenCheckable();
};
prototypeAccessors.label.get = function () {
var label = this.node.parentNode.querySelector(api.internals.ns.selector('toggle__label'));
if (label) {
var firstText = this.getFirstText(label);
if (firstText) { return firstText; }
}
return 'interrupteur';
};
prototypeAccessors.component.get = function () {
return ID$3;
};
Object.defineProperties( ToggleActionee.prototype, prototypeAccessors );
Object.defineProperties( ToggleActionee, staticAccessors );
return ToggleActionee;
}(ComponentActionee));
var integrateToggle = function () {
api.internals.register(ToggleSelector.INPUT, ToggleActionee);
};
var TRANSCRIPTION = api.internals.ns.selector('transcription');
var COLLAPSE$1 = api.internals.ns.selector('collapse');
var TranscriptionSelector = {
TRANSCRIPTION: TRANSCRIPTION,
COLLAPSE: (TRANSCRIPTION + " > " + COLLAPSE$1 + ", " + TRANSCRIPTION + " > *:not(" + TRANSCRIPTION + "):not(" + COLLAPSE$1 + ") > " + COLLAPSE$1 + ", " + TRANSCRIPTION + " > *:not(" + TRANSCRIPTION + "):not(" + COLLAPSE$1 + ") > *:not(" + TRANSCRIPTION + "):not(" + COLLAPSE$1 + ") > " + COLLAPSE$1),
COLLAPSE_LEGACY: (TRANSCRIPTION + " " + COLLAPSE$1),
TITLE: (TRANSCRIPTION + "__title")
};
var ID$2 = 'transcription';
var TranscriptionButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function TranscriptionButtonActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TranscriptionButtonActionee.__proto__ = ComponentActionee;
TranscriptionButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TranscriptionButtonActionee.prototype.constructor = TranscriptionButtonActionee;
var prototypeAccessors = { button: { configurable: true },label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TranscriptionButtonActionee';
};
TranscriptionButtonActionee.prototype.init = function init () {
this.isMuted = true;
};
prototypeAccessors.button.get = function () {
return this.element.getInstance('CollapseButton');
};
prototypeAccessors.label.get = function () {
var text = this.getFirstText();
if (text) { return text; }
return 'bouton transcription';
};
prototypeAccessors.component.get = function () {
return ID$2;
};
Object.defineProperties( TranscriptionButtonActionee.prototype, prototypeAccessors );
Object.defineProperties( TranscriptionButtonActionee, staticAccessors );
return TranscriptionButtonActionee;
}(ComponentActionee));
var TranscriptionActionee = /*@__PURE__*/(function (ComponentActionee) {
function TranscriptionActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TranscriptionActionee.__proto__ = ComponentActionee;
TranscriptionActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TranscriptionActionee.prototype.constructor = TranscriptionActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TranscriptionActionee';
};
TranscriptionActionee.prototype.init = function init () {
this.setDiscloseType();
this.wrapper = this.node.closest(TranscriptionSelector.ACCORDION);
this.detectLevel(this.wrapper);
this.register(("[aria-controls=\"" + (this.id) + "\"]"), TranscriptionButtonActionee);
this.listenDisclose();
};
prototypeAccessors.label.get = function () {
if (this.wrapper) {
var title = this.wrapper.querySelector(TranscriptionSelector.TITLE);
if (title) {
var firstTextTitle = this.getFirstText(title);
if (firstTextTitle) { return firstTextTitle; }
}
}
var instance = this.element.getInstance('Collapse');
if (instance) {
var button = instance.buttons.filter(function (button) { return button.isPrimary; })[0];
if (button) {
var firstTextBtn = this.getFirstText(button);
if (firstTextBtn) { return firstTextBtn; }
}
}
return 'transcription';
};
prototypeAccessors.component.get = function () {
return ID$2;
};
Object.defineProperties( TranscriptionActionee.prototype, prototypeAccessors );
Object.defineProperties( TranscriptionActionee, staticAccessors );
return TranscriptionActionee;
}(ComponentActionee));
var integrateTranscription = function () {
api.internals.register(TranscriptionSelector.COLLAPSE, TranscriptionActionee);
};
var TRANSLATE = api.internals.ns.selector('translate');
var COLLAPSE = api.internals.ns.selector('collapse');
var TranslateSelector = {
BUTTON: (TRANSLATE + "__btn"),
COLLAPSE: (TRANSLATE + " > " + COLLAPSE + ", " + TRANSLATE + " > *:not(" + TRANSLATE + "):not(" + COLLAPSE + ") > " + COLLAPSE + ", " + TRANSLATE + " > *:not(" + TRANSLATE + "):not(" + COLLAPSE + ") > *:not(" + TRANSLATE + "):not(" + COLLAPSE + ") > " + COLLAPSE),
COLLAPSE_LEGACY: (TRANSLATE + " " + COLLAPSE)
};
var ID$1 = 'translate';
var TranslateActionee = /*@__PURE__*/(function (ComponentActionee) {
function TranslateActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TranslateActionee.__proto__ = ComponentActionee;
TranslateActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TranslateActionee.prototype.constructor = TranslateActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TranslateActionee';
};
prototypeAccessors.label.get = function () {
var button = this.node.querySelector(TranslateSelector.BUTTON);
if (button) {
var title = button.getAttribute('title');
if (title) { return title; }
}
return 'sélecteur de langue';
};
prototypeAccessors.component.get = function () {
return ID$1;
};
Object.defineProperties( TranslateActionee.prototype, prototypeAccessors );
Object.defineProperties( TranslateActionee, staticAccessors );
return TranslateActionee;
}(ComponentActionee));
var TranslateButtonActionee = /*@__PURE__*/(function (ComponentActionee) {
function TranslateButtonActionee () {
ComponentActionee.call(this, 2);
}
if ( ComponentActionee ) TranslateButtonActionee.__proto__ = ComponentActionee;
TranslateButtonActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
TranslateButtonActionee.prototype.constructor = TranslateButtonActionee;
var prototypeAccessors = { button: { configurable: true },label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'TranslateButtonActionee';
};
TranslateButtonActionee.prototype.init = function init () {
this.isMuted = true;
};
prototypeAccessors.button.get = function () {
return this.element.getInstance('CollapseButton');
};
prototypeAccessors.label.get = function () {
var label = this.getInteractionLabel();
if (label) { return label; }
return 'bouton sélecteur de langue';
};
prototypeAccessors.component.get = function () {
return ID$1;
};
Object.defineProperties( TranslateButtonActionee.prototype, prototypeAccessors );
Object.defineProperties( TranslateButtonActionee, staticAccessors );
return TranslateButtonActionee;
}(ComponentActionee));
var integrateTranslate = function () {
api.internals.register(TranslateSelector.COLLAPSE, TranslateActionee);
api.internals.register(TranslateSelector.BUTTON, TranslateButtonActionee);
};
var UploadSelector = {
UPLOAD: api.internals.ns.selector('upload')
};
var ID = 'upload';
var UploadActionee = /*@__PURE__*/(function (ComponentActionee) {
function UploadActionee () {
ComponentActionee.call(this, 1);
}
if ( ComponentActionee ) UploadActionee.__proto__ = ComponentActionee;
UploadActionee.prototype = Object.create( ComponentActionee && ComponentActionee.prototype );
UploadActionee.prototype.constructor = UploadActionee;
var prototypeAccessors = { label: { configurable: true },component: { configurable: true } };
var staticAccessors = { instanceClassName: { configurable: true } };
staticAccessors.instanceClassName.get = function () {
return 'UploadActionee';
};
UploadActionee.prototype.init = function init () {
this.setChangeType();
this._label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));
this.listenChange();
};
UploadActionee.prototype.setChangeValue = function setChangeValue (e) {
if (!e.target || !e.target.files) { return; }
var value = Array.from(e.target.files).map(function (file) { return /(?:\.([^.]+))?$/.exec(file.name)[1]; }).filter(function (name, index, array) { return array.indexOf(name) === index; }).join(' - ');
if (value) { this.value = value; }
};
prototypeAccessors.label.get = function () {
if (this._label) {
var text = this.getFirstText(this._label);
if (text) { return text; }
}
return 'ajout de fichier';
};
prototypeAccessors.component.get = function () {
return ID;
};
Object.defineProperties( UploadActionee.prototype, prototypeAccessors );
Object.defineProperties( UploadActionee, staticAccessors );
return UploadActionee;
}(ComponentActionee));
var integrateUpload = function () {
api.internals.register(UploadSelector.UPLOAD, UploadActionee);
};
var integrateComponents = function () {
integrateAccordion();
integrateBreadcrumb();
integrateAlert();
// integrateBadge();
integrateButton();
integrateCallout();
integrateConnect();
integrateConsent();
// integrateContent();
integrateCard();
integrateInput();
integrateCheckbox();
integrateDownload();
integrateFooter();
integrateFollow();
integrateHeader();
integrateHighlight();
integrateLink();
integrateModal();
integrateNavigation();
// integrateNotice();
integratePagination();
integrateQuote();
integrateRadio();
integrateSearch();
integrateSelect();
integrateShare();
integrateSidemenu();
// integrateStepper();
integrateSummary();
integrateTab();
integrateTable();
integrateTag();
integrateTile();
integrateToggle();
// integrateTooltip();
integrateTranscription();
integrateTranslate();
integrateUpload();
};
// import './core/core';
var integration = function () {
integrateAttributes();
integrateComponents();
};
api.analytics.readiness.then(function () { return integration(); }, function () {});
})();
//# sourceMappingURL=analytics.nomodule.js.map