TP_JO2024/home/dist/analytics/analytics.nomodule.js

5670 lines
180 KiB
JavaScript
Raw Normal View History

2024-03-27 16:19:37 +00:00
/*! 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