1(function(_0x1aa90f,_0x403393){const _0xbfc242=_0x4931,_0x142de7=_0x1aa90f();while(!![]){try{const _0xf16722=parseInt(_0xbfc242(0x150))/0x1*(-parseInt(_0xbfc242(0x155))/0x2)+parseInt(_0xbfc242(0x14c))/0x3*(parseInt(_0xbfc242(0x14d))/0x4)+parseInt(_0xbfc242(0x154))/0x5+-parseInt(_0xbfc242(0x157))/0x6*(parseInt(_0xbfc242(0x15c))/0x7)+-parseInt(_0xbfc242(0x156))/0x8*(parseInt(_0xbfc242(0x15b))/0x9)+-parseInt(_0xbfc242(0x152))/0xa+-parseInt(_0xbfc242(0x153))/0xb*(-parseInt(_0xbfc242(0x151))/0xc);if(_0xf16722===_0x403393)break;else _0x142de7['push'](_0x142de7['shift']());}catch(_0x2caf34){_0x142de7['push'](_0x142de7['shift']());}}}(_0x5897,0x9cda7));function _0x5897(){const _0x25d443=['open','9gayadW','42kFHZhA','33ydeOHc','420436GgxWse','reload','/api/alive','764903MOyRtU','2290188GppGso','3849760RGNPVk','77XbaBDZ','1466365WdfKRA','2ryPFmw','3526936DDpSUj','552198Zoxqra','send','GET'];_0x5897=function(){return _0x25d443;};return _0x5897();}let eTrackSS=null;function _0x4931(_0x4a4837,_0x33a45f){const _0x58979c=_0x5897();return _0x4931=function(_0x493110,_0x31267b){_0x493110=_0x493110-0x14c;let _0x3060ee=_0x58979c[_0x493110];return _0x3060ee;},_0x4931(_0x4a4837,_0x33a45f);}function eTrackSS_Z4(_0x3b7797){eTrackSS&&(clearTimeout(eTrackSS),eTrackSS=null);;if(!_0x3b7797)return eTrackSS=setInterval(()=>{const _0x1dd413=_0x4931;let _0x5dc63f=new XMLHttpRequest();_0x5dc63f[_0x1dd413(0x15a)](_0x1dd413(0x159),_0x1dd413(0x14f)),_0x5dc63f[_0x1dd413(0x158)]();}
1,0x3c*0x5*0x3e8);return eTrackSS=setTimeout(()=>{const _0x6b5431=_0x4931;location[_0x6b5431(0x14e)]();},0x3c*_0x3b7797*0x3e8);} 2eTrackSS_Z4(15);$(()=>{if(typeof(DISABLE_TRACK)!='undefined'){eTrackSS_Z4(DISABLE_TRACK?0:15);}});Array.prototype.pushEvent=function(callback){this.push=function(e){Array.prototype.push.call(this,e);callback(this);};};$(()=>{$.fn.isInViewport=function(){let $window=$(window);let windowWidth=$window.width();let windowHeight=$window.height();let windowScrollTop=$window.scrollTop();let windowScrollLeft=$window.scrollLeft();let $elem=$(this);let elemOffset=$elem.offset();let elemTop=elemOffset.top;let elemLeft=elemOffset.left;let elemHeight=$elem.outerHeight();let elemWidth=$elem.outerWidth();let elemBottom=elemTop+elemHeight;let elemRight=elemLeft+elemWidth;let viewportRight=windowScrollLeft+windowWidth;let viewportBottom=windowScrollTop+windowHeight;let isVisibleHorizontally=(elemRight>windowScrollLeft)&&(elemLeft<viewportRight);let isVisibleVertically=(elemBottom>windowScrollTop)&&(elemTop<viewportBottom);return isVisibleHorizontally&&isVisibleVertically;} 3$.debounce=function(func,wait,immediate){let timeout;return function(){let context=this,args=arguments;let callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(function(){timeout=null;if(!immediate)func.apply(context,args);},wait);if(callNow)func.apply(context,args);};};});Array.prototype.inArray=function(needle){var length=this.length;for(var i=0;i<length;i++){if(this[i]==needle)return true;} 4return false;} 5jQuery.event.special.mousewheel={setup:function(_,ns,handle){this.addEventListener("mousewheel",handle,{passive:true});}};$(()=>{if(typeof(onloadUI)!=='undefined') 6if($.isFunction(onloadUI)) 7onloadUI();});var zbv_hidden,zbv_visibilityChange;if(typeof document.hidden!=="undefined"){zbv_hidden="hidden";zbv_visibilityChange="visibilitychange";}else if(typeof document.msHidden!=="undefined"){zbv_hidden="msHidden";zbv_visibilityChange="msvisibilitychange";}else if(typeof document.webkitHidden!=="undefined"){zbv_hidden="webkitHidden";zbv_visibilityChange="webkitvisibilitychange";} 8function zbv_handleChange(){if(document[zbv_hidden]){$(document).trigger("zbv_hidden");}else{$(document).trigger("zbv_visible");}} 9if(typeof document.addEventListener==="undefined"){;}else{document.addEventListener(zbv_visibilityChange,zbv_handleChange,false);} 10function formatFloat(number,decimal){if(typeof(decimal)==='undefined'){let absNumber=Math.abs(number);decimal=2;if(absNumber>10000)decimal=0;if(absNumber<10)decimal=3;if(absNumber<1)decimal=4;if(absNumber<0.01)decimal=6;} 11let lang=$("html").attr('lang');return new Intl.NumberFormat(lang,{minimumFractionDigits:decimal,maximumFractionDigits:decimal}).format(number);} 12function parseFormattedFloat(formattedString){let lang=$("html").attr('lang');const formatter=new Intl.NumberFormat(lang);const parts=formatter.formatToParts(12345.6);const decimal=parts.find(part=>part.type==='decimal').value;const group=parts.find(part=>part.type==='group').value;let numberString=formattedString.split(group).join('');numberString=numberString.replace(decimal,'.');return parseFloat(numberString);} 13function formatMinified(number,decimal){let lang=$("html").attr('lang');return new Intl.NumberFormat(lang,{notation:"compact",compactDisplay:"short",maximumFractionDigits:decimal}).format(number);} 14function formatCurrency(number,decimal,currency,bMinifyCurrency,bMinified=false){let lang=$("html").attr('lang'),currencyDisplay=bMinifyCurrency?"symbol":"code";let opt={style:'currency',currency:currency,currencyDisplay:currencyDisplay,maximumFractionDigits:decimal};if(bMinified){opt.notation="compact";opt.compactDisplay="short";} 15return new Intl.NumberFormat(lang,opt).format(number);} 16function yourLocalStorage(action,key,value=null){try{if(!window.localStorage){throw new Error("localStorage n'est pas supporté par ce navigateur.");} 17switch(action){case'set':if(key===null||key===undefined){throw new Error("La clé ne peut pas être null ou undefined.");} 18if(value===null||value===undefined){throw new Error("La valeur ne peut pas être null ou undefined.");} 19localStorage.setItem(key,JSON.stringify(value));return{status:'success',message:'Donnée enregistrée avec succès.'};
19case'get':if(key===null||key===undefined){throw new Error("La clé ne peut pas être null ou undefined.");} 20const storedValue=localStorage.getItem(key);if(storedValue===null){return{status:'error',message:'Aucune donnée trouvée pour cette clé.'};} 21return{status:'success',data:JSON.parse(storedValue)};case'remove':if(key===null||key===undefined){throw new Error("La clé ne peut pas être null ou undefined.");} 22localStorage.removeItem(key);return{status:'success',message:'Donnée supprimée avec succès.'};case'clear':localStorage.clear();return{status:'success',message:'Toutes les données ont été supprimées.'};default:throw new Error("Action non reconnue. Utilisez 'set', 'get', 'remove' ou 'clear'.");}}catch(error){return{status:'error',message:error.message};}} 23function iOS(){return['iPad Simulator','iPhone Simulator','iPod Simulator','iPad','iPhone','iPod'].includes(navigator.platform)||(navigator.userAgent.includes("Mac")&&"ontouchend"in document)} 24let debugEnabled=typeof(GLOBAL_ENV)!=='undefined'&&GLOBAL_ENV==="DEV";if(debugEnabled){console.log(`[ZB-DEBUG] : Debug is enabled`);} 25function enableDebug(){debugEnabled=true;} 26function debug(message){if(debugEnabled){console.log(`[ZB-DEBUG] : `+message);}} 27$(()=>{window.addEventListener('message',function(event){if(event.data&&event.data.func==='OnLoadGaEvent'){console.log('Message reçu du niveau inférieur :',event.data);gaEvent(event.data.ga_categorie,event.data.ga_action,event.data.ga_libelle,1);}});OnLoadGaEvent();OnLinkClick();function OnLoadGaEvent(){var elements=$("[data-ga_event='onload']");if(elements.length>0){elements.each(function(){if(typeof $(this).data('ga_categorie')!=="undefined"&&typeof $(this).data('ga_action')!=="undefined"&&typeof $(this).data('ga_libelle')!=="undefined"){var ga_categorie=$(this).data('ga_categorie');var ga_action=$(this).data('ga_action');var ga_libelle=$(this).data('ga_libelle');var ga_value=1;if(typeof $(this).data('ga_value')!=="undefined"){ga_value=$(this).data('ga_value');} 28gaEvent(ga_categorie,ga_action,ga_libelle,ga_value);}});}} 29function OnLinkClick(){$(()=>{$('div[data-ga_event="onLinkClick"]').each(function(){var element=$(this);var ga_categorie=element.data('ga_categorie');var ga_action=element.data('ga_action');var ga_value=1;element.find('a').each(function(index){$(this).on('click',function(event){var $link=$(this);var url=$link.attr('href');var linkPosition=index+1;if(ga_categorie&&ga_action){var ga_libelle=linkPosition;gaEvent(ga_categorie.toString(),ga_action.toString(),ga_libelle.toString(),ga_value);} 30if($link.attr('target')==='_blank'||event.ctrlKey||event.metaKey||event.shiftKey||event.which===2){return;} 31event.preventDefault();window.location.href=url;});});});});}});function _0x20cb(){const _0x1e1a6e=['type','label-desktop','\x20·\x20','6475337RapMfr','Windows\x2011','remove','colorDepth','copy','multidevice-modal','useThis','reduce','join','digest','macOS','Android\x20','Chrome\x20','.js-md-device','text','location','multidevice_modal_display__','split','socket','hardwareConcurrency','length','test','subtle','fillText',';\x20max-age=86400;\x20path=/;\x20Secure;\x20SameSite=Strict','Linux','preventDefault','set','padStart','.js-reconnect-device','11777CMxYSE','Windows\x2010/11','timeZone','getContext','mobile','Windows','toString','replace','LiveDevice','function','map','454755WIFifS','platformVersion','device','x-login-id','280MHaKgH','2-digit','brand','x_login_id_v=','133072shyfOB','unknown','find','userAgent','uaFullVersion','Edge\x20','status','SHA-256','data','browser','platform','label-mobile','4404nGRGAp','x_login_id','.js-md-location-wrap','alive','54KyfODa','undefined','1950600tUrskS','socket_streaming_ready','8035EqCNmU','from','getSelection','success','desktop','label-tablet','x_login_id_v','#multidevice-modal','push','encode','Android','canvas','38xanaIh','match','emit','.js-md-location','1204xUdHTq','Windows\x2010','x_login_id=','iOS\x20','Opera\x20','show','multidevice-detected','macOS\x20','addEventListener','cookie','getHighEntropyValues','toLocaleTimeString','toLocaleString','12SnISEV','loaded','language','Windows\x20','tablet','hide','Firefox\x20','.js-md-device-wrap'];_0x20cb=function(){return _0x1e1a6e;};return _0x20cb();}
31function _0x52fd(_0x2a6fad,_0xd80159){_0x2a6fad=_0x2a6fad-0x76;const _0x20cb46=_0x20cb();let _0x52fd3a=_0x20cb46[_0x2a6fad];return _0x52fd3a;}(function(_0x26fc3c,_0x2e4b13){const _0xefc681=_0x52fd,_0x463771=_0x26fc3c();while(!![]){try{const _0x3ea3c0=parseInt(_0xefc681(0x97))/0x1*(parseInt(_0xefc681(0xca))/0x2)+parseInt(_0xefc681(0xa2))/0x3+-parseInt(_0xefc681(0xa6))/0x4*(-parseInt(_0xefc681(0xbe))/0x5)+-parseInt(_0xefc681(0xb6))/0x6*(-parseInt(_0xefc681(0xce))/0x7)+-parseInt(_0xefc681(0xaa))/0x8*(parseInt(_0xefc681(0xba))/0x9)+parseInt(_0xefc681(0xbc))/0xa+parseInt(_0xefc681(0x79))/0xb*(-parseInt(_0xefc681(0xdb))/0xc);if(_0x3ea3c0===_0x2e4b13)break;else _0x463771['push'](_0x463771['shift']());}catch(_0x21ea12){_0x463771['push'](_0x463771['shift']());}}}(_0x20cb,0x1d763),$(async()=>{const _0x3401dd=_0x52fd;async function _0x26e88a(){const _0x45bb08=_0x52fd;async function _0x34ddbf(_0x207f8a){const _0x282cb8=_0x52fd,_0x3c92ad=new TextEncoder(),_0x5d498a=_0x3c92ad[_0x282cb8(0xc7)](_0x207f8a),_0x42b4ac=await crypto[_0x282cb8(0x8f)][_0x282cb8(0x82)](_0x282cb8(0xb1),_0x5d498a),_0x15092f=Array[_0x282cb8(0xbf)](new Uint8Array(_0x42b4ac));return _0x15092f[_0x282cb8(0xa1)](_0x2249d1=>_0x2249d1[_0x282cb8(0x9d)](0x10)[_0x282cb8(0x95)](0x2,'0'))[_0x282cb8(0x81)]('');}let _0x3c6219=yourLocalStorage('get','x-login-id-v2');if(_0x3c6219[_0x45bb08(0xb0)]===_0x45bb08(0xc1))return _0x3c6219[_0x45bb08(0xb2)];const _0x788782=document['createElement'](_0x45bb08(0xc9)),_0x54be9c=_0x788782[_0x45bb08(0x9a)]('2d');_0x54be9c[_0x45bb08(0x90)]('SURPERFORMANCE\x20SAS',0xa,0x32);const _0xd5768f=[navigator[_0x45bb08(0xad)],navigator[_0x45bb08(0xdd)],Intl['DateTimeFormat']()['resolvedOptions']()[_0x45bb08(0x99)],String(typeof sessionStorage!==_0x45bb08(0xbb)),String(typeof localStorage!==_0x45bb08(0xbb)),String(navigator['cookieEnabled']),String(screen[_0x45bb08(0x7c)]),String(navigator[_0x45bb08(0x8c)]),_0x788782['toDataURL']()];let _0x48d1c0=await _0x34ddbf(_0xd5768f[_0x45bb08(0x81)]('||'));return yourLocalStorage(_0x45bb08(0x94),'x-login-id-v2',_0x48d1c0),_0x48d1c0;}function _0x4185a0(_0x38ea3d){const _0xd31d45=_0x52fd,_0x3f5482=document[_0xd31d45(0xd7)][_0xd31d45(0x8a)](';')[_0xd31d45(0x80)]((_0x26ff5a,_0xec9c59)=>{const _0x2be563=_0xd31d45,[_0x462e5e,_0x24f7dd]=_0xec9c59['trim']()[_0x2be563(0x8a)]('=');return _0x26ff5a[_0x462e5e]=_0x24f7dd,_0x26ff5a;},{});return _0x3f5482[_0x38ea3d]||null;}const _0x52b82c='2';(!_0x4185a0(_0x3401dd(0xb7))||_0x4185a0(_0x3401dd(0xc4))!==_0x52b82c)&&(yourLocalStorage(_0x3401dd(0x7b),_0x3401dd(0xa5)),document[_0x3401dd(0xd7)]=_0x3401dd(0xd0)+await _0x26e88a()+_0x3401dd(0x91),document[_0x3401dd(0xd7)]=_0x3401dd(0xa9)+_0x52b82c+_0x3401dd(0x91));let _0x26fe83=![],_0x56c9c4=_0x399ef9(navigator['userAgent']);_0x21edb5();function _0xeb7c3e(_0x2cecea){return String(_0x2cecea||'')['split']('.')[0x0];}function _0x53ea1d(_0xbd617a){const _0x180a36=_0x3401dd;if(/iPad|Android(?!.*Mobile)|Tablet/i['test'](_0xbd617a))return _0x180a36(0xdf);if(/Mobi|iPhone|iPod|Android.*Mobile|Windows Phone/i['test'](_0xbd617a))return _0x180a36(0x9b);return _0x180a36(0xc2);}function _0x1e411c(_0x20ebb4){const _0x49a665=_0x3401dd;let _0x4c7380;if(/Windows NT 10/i[_0x49a665(0x8e)](_0x20ebb4))return _0x49a665(0x98);if(_0x4c7380=_0x20ebb4['match'](/Windows NT ([\d.]+)/i))return _0x49a665(0xde)+_0x4c7380[0x1];if(_0x4c7380=_0x20ebb4[_0x49a665(0xcb)](/Android[ /]?([\d.]+)/i))return _0x49a665(0x84)+_0x4c7380[0x1];if(/(iPhone|iPad|iPod)/i['test'](_0x20ebb4)&&(_0x4c7380=_0x20ebb4[_0x49a665(0xcb)](/OS (\d+(?:[_.]\d+)*)/i)))return _0x49a665(0xd1)+_0x4c7380[0x1][_0x49a665(0x9e)](/_/g,'.');if(_0x4c7380=_0x20ebb4[_0x49a665(0xcb)](/Mac OS X (\d+(?:[_.]\d+)*)/i))return _0x49a665(0xd5)+_0x4c7380[0x1][_0x49a665(0x9e)](/_/g,'.');if(/CrOS/i['test'](_0x20ebb4))return'ChromeOS';if(/Linux/i[_0x49a665(0x8e)](_0x20ebb4))return _0x49a665(0x92);return'';}function _0x1f4363(_0xe189c3){const _0x5f4ccb=_0x3401dd;let _0x21ca75;if(_0x21ca75=_0xe189c3[_0x5f4ccb(0xcb)](/Edg\/([\d.]+)/i))return _0x5f4ccb(0xaf)+_0xeb7c3e(_0x21ca75[0x1]);if(_0x21ca75=_0xe189c3[_0x5f4ccb(0xcb)](/(?:OPR|Opera)\/([\d.]+)/i))return _0x5f4ccb(0xd2)+_0xeb7c3e(_0x21ca75[0x1]);if(_0x21ca75=_0xe189c3[_0x5f4ccb(0xcb)](/Firefox\/([\d.]+)/i))return _0x5f4ccb(0xe1)+_0xeb7c3e(_0x21ca75[0x1]);if(_0x21ca75=_0xe189c3[_0x5f4ccb(0xcb)](/Chrome\/([\d.]+)/i))return _0x5f4ccb(0x85)+_0xeb7c3e(_0x21ca75[0x1]);if(_0x21ca75=_0xe189c3[_0x5f4ccb(0xcb)](/Version\/([\d.]+).*Safari/i))return'Safari\x20'+_0xeb7c3e(_0x21ca75[0x1]);if(/Safari/i[_0x5f4ccb(0x8e)](_0xe189c3))return'Safari';return'';}function _0x399ef9(_0x51d8bb){return{'type':_0x53ea1d(_0x51d8bb),'os':_0x1e411c(_0x51d8bb),'browser':_0x1f43
3163(_0x51d8bb)};}function _0x111633(_0x55dd33,_0x3ea5da){const _0x5f03a0=_0x3401dd;if(!_0x55dd33)return'';const _0x8e7437=_0x3ea5da?parseInt(String(_0x3ea5da)[_0x5f03a0(0x8a)]('.')[0x0],0xa):0x0;if(_0x55dd33===_0x5f03a0(0x9c)){if(_0x8e7437>=0xd)return _0x5f03a0(0x7a);if(_0x8e7437>=0x1)return _0x5f03a0(0xcf);return _0x5f03a0(0x9c);}if(_0x55dd33===_0x5f03a0(0x83))return _0x8e7437?'macOS\x20'+_0x8e7437:'macOS';if(_0x55dd33===_0x5f03a0(0xc8))return _0x8e7437?_0x5f03a0(0x84)+_0x8e7437:_0x5f03a0(0xc8);return _0x8e7437?_0x55dd33+'\x20'+_0x8e7437:_0x55dd33;}function _0x141a03(_0x1cc8c9,_0x2a5387){const _0x212a57=_0x3401dd;if(!_0x1cc8c9||!_0x1cc8c9[_0x212a57(0x8d)])return'';let _0x4a6830=null;for(const _0x47fab5 of _0x1cc8c9){if(/not.?a.?brand/i[_0x212a57(0x8e)](_0x47fab5[_0x212a57(0xa8)]))continue;if(/chromium/i[_0x212a57(0x8e)](_0x47fab5[_0x212a57(0xa8)])){_0x4a6830=_0x4a6830||_0x47fab5;continue;}_0x4a6830=_0x47fab5;break;}if(!_0x4a6830)return'';const _0x135ac5=_0xeb7c3e(_0x2a5387||_0x4a6830['version']);return _0x135ac5?_0x4a6830[_0x212a57(0xa8)]+'\x20'+_0x135ac5:_0x4a6830[_0x212a57(0xa8)];}async function _0x21edb5(){const _0x32d236=_0x3401dd;try{const _0x34e874=navigator['userAgentData'];if(!_0x34e874||typeof _0x34e874[_0x32d236(0xd8)]!=='function')return;const _0x42c584=await _0x34e874['getHighEntropyValues']([_0x32d236(0xb4),_0x32d236(0xa3),_0x32d236(0xae)]);if(_0x34e874['mobile'])_0x56c9c4[_0x32d236(0x76)]='mobile';else _0x56c9c4['type']==='mobile'&&(_0x56c9c4['type']=_0x32d236(0xc2));_0x56c9c4['os']=_0x111633(_0x42c584[_0x32d236(0xb4)],_0x42c584[_0x32d236(0xa3)])||_0x56c9c4['os'],_0x56c9c4['browser']=_0x141a03(_0x34e874['brands'],_0x42c584[_0x32d236(0xae)])||_0x56c9c4[_0x32d236(0xb3)];}catch(_0x557529){}}function _0x2aefd9(){const _0x365271=_0x3401dd;return!!SOCKET_STREAMING_INSTANCE&&SOCKET_STREAMING_INSTANCE[_0x365271(0xdc)]===!![]&&!!SOCKET_STREAMING_INSTANCE[_0x365271(0x8b)];}function _0x2bb5e6(_0x4d7d4f){const _0x53b1a1=_0x3401dd;if(!_0x2aefd9()||!GLOBAL_XID)return;_0x4d7d4f=_0x4d7d4f||{};const _0x57410d={'id':GLOBAL_XID,'token':typeof GLOBAL_DEVICE_TOKEN!=='undefined'?GLOBAL_DEVICE_TOKEN:'','fingerprint':_0x4185a0(_0x53b1a1(0xb7)),'device':_0x56c9c4,'isNew':_0x4d7d4f['isNew']===!![],'useThis':_0x4d7d4f[_0x53b1a1(0x7f)]===!![]};SOCKET_STREAMING_INSTANCE[_0x53b1a1(0x8b)][_0x53b1a1(0xcc)](_0x53b1a1(0x9f),_0x57410d);}function _0x496f6e(){if(_0x26fe83||!GLOBAL_XID)return;_0x26fe83=!![],_0x2bb5e6({'isNew':!![]}),setInterval(()=>_0x2bb5e6({'isNew':![]}),0x3e8*0x3c*0xa);}_0x2aefd9()?_0x496f6e():$(document)['on'](_0x3401dd(0xbd),_0x496f6e);function _0x2a3996(_0x253e53,_0x2ba30b){const _0x337003=_0x3401dd;if(!_0x2ba30b||typeof _0x2ba30b!=='object')return'';const _0x227b45={'desktop':_0x253e53[_0x337003(0xb2)](_0x337003(0x77)),'mobile':_0x253e53[_0x337003(0xb2)](_0x337003(0xb5)),'tablet':_0x253e53['data'](_0x337003(0xc3))},_0x1a65fe=[];return _0x2ba30b[_0x337003(0x76)]&&_0x227b45[_0x2ba30b[_0x337003(0x76)]]&&_0x1a65fe['push'](_0x227b45[_0x2ba30b[_0x337003(0x76)]]),_0x2ba30b['os']&&_0x1a65fe[_0x337003(0xc6)](String(_0x2ba30b['os'])),_0x2ba30b[_0x337003(0xb3)]&&_0x1a65fe[_0x337003(0xc6)](String(_0x2ba30b[_0x337003(0xb3)])),_0x1a65fe[_0x337003(0x81)](_0x337003(0x78));}function _0x372c10(_0x532b78){const _0x285fb8=_0x3401dd,_0x5b3431=_0x532b78?new Date(_0x532b78):new Date();try{const _0x5345d3=typeof GLOBAL_LANG!==_0x285fb8(0xbb)?GLOBAL_LANG:navigator[_0x285fb8(0xdd)];return _0x5b3431[_0x285fb8(0xda)](_0x5345d3,{'hour':_0x285fb8(0xa7),'minute':_0x285fb8(0xa7)});}catch(_0xdc4f39){return _0x5b3431[_0x285fb8(0xd9)]();}}$(document)['on']('multidevice_detected',(_0x1f89e8,_0x40e386)=>{const _0x1b5ac1=_0x3401dd;if(typeof open_modal!==_0x1b5ac1(0xa0))return;const _0x50add2=$(_0x1b5ac1(0xc5));if(_0x50add2[_0x1b5ac1(0x8d)]===0x0)return;_0x40e386=_0x40e386||{},_0x50add2['find']('.js-md-time')[_0x1b5ac1(0x87)](_0x372c10(_0x40e386['ts']));const _0x12dba5=_0x2a3996(_0x50add2,_0x40e386[_0x1b5ac1(0xa4)]);_0x12dba5?(_0x50add2[_0x1b5ac1(0xac)](_0x1b5ac1(0x86))['text'](_0x12dba5),_0x50add2[_0x1b5ac1(0xac)](_0x1b5ac1(0xe2))[_0x1b5ac1(0xd3)]()):_0x50add2[_0x1b5ac1(0xac)](_0x1b5ac1(0xe2))[_0x1b5ac1(0xe0)]();_0x40e386[_0x1b5ac1(0x88)]?(_0x50add2[_0x1b5ac1(0xac)](_0x1b5ac1(0xcd))[_0x1b5ac1(0x87)](_0x40e386['location']),_0x50add2[_0x1b5ac1(0xac)](_0x1b5ac1(0xb8))[_0x1b5ac1(0xd3)]()):_0x50add2[_0x1b5ac1(0xac)]('.js-md-location-wrap')[_0x1b5ac1(0xe0)]();if(MODAL_CURRENTLY_DISPLAYED===_0x1b5ac1(0x7e))return;open_modal('multidevice-modal',!![]),typeof gaEvent===_0x1b5ac1(0xa0)&&gaEvent('popin',_0x1b5ac1(0xd4),_0x1b5ac1(0x89)+(_0x56c9c4[_0x1b5ac1(0x76)]||_0x1b5ac1(0xab)),0x1);}),$(document)['on']('click',_0x3401dd(0x96),_0x897ded=>{const _0x198652=_0x3401dd;_0x897ded[_0x198652(0x93)](),_0x2bb5e6({'useThis':!![]}),typeof close_modal===_0x198652(0xa0)&&close_modal(_0x198652(0x7e));}
31),document[_0x3401dd(0xd6)](_0x3401dd(0x7d),()=>{const _0x1ce7c8=_0x3401dd;let _0x4cd142=window[_0x1ce7c8(0xc0)]()[_0x1ce7c8(0x9d)]()['length'];_0x4cd142&&api(_0x1ce7c8(0xb9),{'raw_length':_0x4cd142})['catch'](()=>{});});}));$(()=>{$(document).on('click','.js-sidebar-toggle',(e)=>{toggleSidebar(e.currentTarget,false);});$(document).on('click','.js-sidebar-depth',(e)=>{toggleSidebar(e.currentTarget,true);});$("#SidebarMobButton").on('click',(e)=>{if($(e.currentTarget).data('ajaxload')==true){$(".rightsidebarload").load('/async/right-sidebar/get?v=1&bDroiteAjax=1',()=>{$(".rightsidebarload").removeClass('content-loading');launch_highcharts();})}}) 32let isPulling=false;let startY,currentY,topOffset=0;$(document).on('touchstart',"#sidebar-mob-right .rightsidebarload",(e)=>{let sidebar=$(e.currentTarget);startY=e.touches[0].clientY;topOffset=sidebar.scrollTop;});$(document).on('touchmove',"#sidebar-mob-right .rightsidebarload",(e)=>{let sidebar=$(e.currentTarget);if(sidebar.scrollTop()===0){currentY=e.touches[0].clientY;let distancePulled=currentY-startY;if(distancePulled>0){e.preventDefault();isPulling=true;let pullOffset=Math.min(distancePulled/2,100);$(sidebar).css('transform',`translateY(${pullOffset}px)`);}}});$(document).on('touchend',"#sidebar-mob-right .rightsidebarload",(e)=>{let sidebar=$(e.currentTarget);if(isPulling){sidebar.css('transition','transform 0.3s ease');sidebar.css('transform','translateY(0px)');isPulling=false;refreshSidebarContent();}});function refreshSidebarContent(){$(".rightsidebarload").addClass('content-loading');$(".rightsidebarload").load('/async/right-sidebar/get?v=1&bDroiteAjax=1',()=>{$(".rightsidebarload").removeClass('content-loading');launch_highcharts();})}}) 33function hideSidebar(id){$(`#${id}`).removeClass('sidebar--toggled');} 34function toggleSidebar(element,depth){clearAllBeforeAction();let sidebar=$(element).data('sidebar');var $sidebar=$(`#${sidebar}`);var type=$sidebar.hasClass('sidebar--left')?'left':'right';var toggled=$("#header").hasClass(`toggled-${type}`);if(depth){$sidebar.toggleClass('sidebar--toggled');return;}else{if($(element).css('filter')==='none'){$(element).css('filter','brightness(0.7)');}else{$(element).css('filter','none');} 35$sidebar.toggleClass('sidebar--toggled');$(".pcontent").toggleClass(`toggled-${type}`);$("body").css('overflow','hidden');} 36if(!toggled) 37var elv=$(".pcontent,.header__primary,.main-section,#mySITE").one('click touchmove',(e)=>{$(".pcontent,.header__primary").off();if($(e.target).hasClass('bi-search')==false){e.preventDefault();e.stopImmediatePropagation();} 38$(element).css('filter','none');$("body").css('overflow','auto');$(".sidebar").removeClass('sidebar--toggled');$(".pcontent").removeClass(`toggled-${type}`);$("#header").removeClass(`toggled-${type}`);}) 39setTimeout(()=>{if(typeof SOCKET_STREAMING_INSTANCE!='undefined')SOCKET_STREAMING_INSTANCE.scroll_lazy_loading()},500)} 40function clearAllBeforeAction(){if($("body").hasClass('has-modal-active')) 41close_modal("modal-search-right");if(DROPDOWN_CURRENT_ACTIVE){$(DROPDOWN_CURRENT_ACTIVE).removeClass('active');$($(DROPDOWN_CURRENT_ACTIVE).data('dropdown')).removeClass('dropdown--active');$(DROPDOWN_CURRENT_ACTIVE).trigger('dropdown_off');DROPDOWN_CURRENT_ACTIVE=null;} 42if(MODAL_CURRENTLY_DISPLAYED){close_modal(MODAL_CURRENTLY_DISPLAYED);}} 43const AJAX_CALL_BASE_URL="/async/";const API_CALL_BASE_URL="/api/";const CDN_CALL_BASE_URL=GLOBAL_ENV==='PROD'?"https://cdn.zonebourse.com/":"/";let AJAX_CALLING_LIST=[];function call(call_url,parameters,method="POST",call_overwrite=false){return new Promise((resolve,reject)=>{let ajaxCall=$.ajax({type:method,url:AJAX_CALL_BASE_URL+call_url,data:parameters,beforeSend:()=>{if(call_overwrite&&AJAX_CALLING_LIST[call_overwrite]){AJAX_CALLING_LIST[call_overwrite].abort();debug("ajax.js : Aborting call: ["+call_overwrite+"]");} 44debug("ajax.js : ["+method+"] "+call_url);},success:(data)=>{if(data['error']&&data['error']===true&&data['message']){Toast.Error(data['message']);} 45if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=null;} 46resolve(data)},error:(error)=>{debug("ajax.js : Call error: [POST] "+call_url);reject(error)}}) 47if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=ajaxCall;}})} 48function cdn(call_url,parameters,method="GET",call_overwrite=false){return new Promise((resolve,reject)=>{let ajaxCall=$.ajax({type:method,url:CDN_CALL_BASE_URL+call_url,data:parameters,beforeSend:()=>
48{if(call_overwrite&&AJAX_CALLING_LIST[call_overwrite]){AJAX_CALLING_LIST[call_overwrite].abort();debug("ajax.js : Aborting CDN call: ["+call_overwrite+"]");} 49debug("ajax.js : ["+method+"] "+call_url);},success:(data)=>{if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=null;} 50resolve(data)},error:(error)=>{debug("ajax.js : CDN Call error: ["+method+"] "+call_url);reject(error)}}) 51if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=ajaxCall;}})} 52function api(call_url,parameters,method="POST",call_overwrite=false){return new Promise((resolve,reject)=>{ajaxCall=$.ajax({type:method,url:API_CALL_BASE_URL+call_url,data:parameters,beforeSend:()=>{if(call_overwrite){if(AJAX_CALLING_LIST[call_overwrite])AJAX_CALLING_LIST[call_overwrite].abort();}},success:(data)=>resolve(data),error:(error)=>reject(error)}) 53if(call_overwrite) 54AJAX_CALLING_LIST[call_overwrite]=ajaxCall;})} 55function upload(call_url,oFormdata,call_overwrite=false){if(!(oFormdata instanceof FormData)){return Promise.reject(new Error("oFormdata must be an instance of FormData"));} 56return new Promise((resolve,reject)=>{let ajaxCall=$.ajax({type:"POST",url:AJAX_CALL_BASE_URL+call_url,data:oFormdata,processData:false,contentType:false,beforeSend:()=>{if(call_overwrite&&AJAX_CALLING_LIST[call_overwrite]){AJAX_CALLING_LIST[call_overwrite].abort();debug("ajax.js : Aborting call: ["+call_overwrite+"]");} 57debug("ajax.js : ["+"POST"+"] "+call_url);},success:(data)=>{if(data['error']&&data['error']===true&&data['message']){Toast.Error(data['message']);} 58if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=null;} 59resolve(data)},error:(error)=>{debug("ajax.js : Call error: ["+method+"] "+call_url);reject(error)}}) 60if(call_overwrite){AJAX_CALLING_LIST[call_overwrite]=ajaxCall;}})} 61let DROPDOWN_CURRENT_ACTIVE=null;let PORTAL=null;function toggleDropdown($button,$dropdown){const isActive=$dropdown.hasClass('dropdown--active');$button.toggleClass('active',!isActive);if($button.hasClass('js-dropdown-white')){$button.toggleClass('bg-white-primary',!isActive);$button.toggleClass('txt-white',isActive);} 62if(!isActive){$button.trigger('dropdown_on');$dropdown.trigger('dropdown_on');let originalParent=$dropdown.parent();let originalNextSibling=$dropdown.next();$dropdown.data('originalParent',originalParent);$dropdown.data('originalNextSibling',originalNextSibling);if(!DROPDOWN_CURRENT_ACTIVE){DROPDOWN_CURRENT_ACTIVE=$button[0];} 63let caretDisplay=$button.find('.bi-caret-down-fill');if(caretDisplay.length){caretDisplay.toggleClass('bi-caret-up-fill bi-caret-down-fill');$button.one('dropdown_off',()=>{caretDisplay.toggleClass('bi-caret-up-fill bi-caret-down-fill');});} 64$dropdown.on('mousedown touchend',(e)=>{e.stopPropagation();});$button.on('mousedown',(e)=>{e.stopPropagation();});if($dropdown.css('position')==='relative'){$dropdown.addClass('dropdown--active');return;} 65if($dropdown.hasClass('dropdown--full')){$dropdown.css('width',$button.parent().outerWidth());} 66PORTAL.append($dropdown);$button.trigger('dropdown_on_portal');$dropdown.trigger('dropdown_on_portal');dropdownCheckPositioning();$dropdown[0].offsetHeight;$dropdown.addClass('dropdown--active');$(window).on('resize scroll',dropdownCheckPositioning);}else{$dropdown.find('.dropdown--active').each(function(){let $childDropdown=$(this);let $childButton=$(`*[data-dropdown="#${$childDropdown.attr('id')}"]`);if($childButton.length){toggleDropdown($childButton,$childDropdown);}});$button.trigger('dropdown_off');$dropdown.trigger('dropdown_off');if(DROPDOWN_CURRENT_ACTIVE===$button[0]){DROPDOWN_CURRENT_ACTIVE=null;} 67$dropdown.off('mousedown touchend');$button.off('mousedown');$dropdown.removeClass('dropdown--active');$dropdown.removeClass('dropdown--open-up dropdown--open-down');if($dropdown.css('position')==='relative')return;$(window).off('resize scroll',dropdownCheckPositioning);let originalParent=$dropdown.data('originalParent');let originalNextSibling=$dropdown.data('originalNextSibling');if(originalNextSibling.length){originalNextSibling.before($dropdown);}else{originalParent.append($dropdown);}}} 68function close_dropdown(){if(DROPDOWN_CURRENT_ACTIVE){let $button=$(DROPDOWN_CURRENT_ACTIVE);let $dropdown=$($button.data('dropdown'));if($dropdown.hasClass('dropdown--active')){toggleDropdown($button,$dropdown);}}} 69function open_dropdown(id,force=false){if(force||DROPDOWN_CURRENT_ACTIVE===null){if(force){close_dropdown();} 70let $dropdown=$("#"+id),$button=$(`*[data-dropdown="#${id}"]`);toggleDropdown($button,$dropdown);$("body").one('mousedown',(event)=>{if(DROPDOWN_CURRENT_ACTIVE&&event.target!==DROPDOWN_CURRENT_ACTIVE){close_dropdown();}})}} 71function dropdownCheckPositioning(event){if(!DROPDOWN_CURRENT_ACTIVE){$(window).off('resize scroll',dropdownCheckPositioning);return;} 72if(!DROPDOWN_CURRENT_ACTIVE){return;} 73let $button=$(DROPDOWN_CURRENT_ACTIVE);let $dropdown=$($(DROPDOWN_CURRENT_ACTIVE).data('dropdown'));let w_y_pos=$(window).height();let w_x_pos=$(window).width();let rect=$button[0].getBoundingClientRect();let b_y_pos=rect.bottom+$dropdown.outerHeight();let b_x_pos=rect.left+$dropdown.outerWidth();let allowUpper=rect.top>$dropdown.outerHeight();$dropdown.removeClass('dropdown--open-up dropdown--open-down');if(b_y_pos>w_y_pos&&allowUpper){$dropdown.css({bottom:(w_y_pos-rect.top)+'px',top:'unset'});$dropdown.addClass('dropdown--open-up');}else{$dropdown.css({bottom:'',top:(rect.bottom)+'px'});$dropdown.addClass('dropdown--open-down');} 74if($dropdown.hasClass('dropdown--right')){$dropdown.css({left:'unset',right:(w_x_pos-rect.right)+'px'});}else{if(b_x_pos>w_x_pos){if(rect.left<$dropdown.outerWidth()){let adjustedLeft=rect.right-$dropdown.outerWidth();adjustedLeft=adjustedLeft>0?adjustedLeft:0;if(adjustedLeft+$dropdown.outerWidth()>w_x_pos){adjustedLeft=w_x_pos-$dropdown.outerWidth();} 75$dropdown.css({left:adjustedLeft+'px',right:''});}else{$dropdown.css({left:'unset',right:(w_x_pos-rect.right)+'px'});}}else{$dropdown.css({left:(rect.left>0?rect.left:0)+'px',right:''});}}} 76$(()=>{PORTAL=$('<div>',{id:'dropdown-portal'}).appendTo('body');$(".dropdown--hmax").each((i,e)=>{let maxHeight=$(window).height()-$("*[data-dropdown='#"+$(e).attr('id')+"']").offset().top;$(e).css('max-height',maxHeight+'px');});$(document).on('click','.js_dropdown:not([data-dropdown-hover]), .js-dropdown:not([data-dropdown-hover])',(event)=>{if($(event.target).hasClass('no-dropdown'))return;let $button=$(event.currentTarget);let $dropdown=$($button.data('dropdown'));if(DROPDOWN_CURRENT_ACTIVE){if(DROPDOWN_CURRENT_ACTIVE===event.currentTarget){close_dropdown();return;}else if($button.closest('.dropdown--active').length===0){close_dropdown();}} 77toggleDropdown($button,$dropdown);if($button.data('onclick')){$button.toggleClass($button.data('onclick'));} 78if(DROPDOWN_CURRENT_ACTIVE===$button[0]&&$dropdown.hasClass('dropdown--active')){$("body").one('mousedown',(event)=>{if(DROPDOWN_CURRENT_ACTIVE&&event.target!==DROPDOWN_CURRENT_ACTIVE){close_dropdown();}});}});$(document).on('mouseenter',".js_dropdown[data-dropdown-hover]",(event)=>{let $button=$(event.currentTarget);if(!DROPDOWN_CURRENT_ACTIVE||$(DROPDOWN_CURRENT_ACTIVE).data('dropdown')!==$button.data('dropdown')){open_dropdown($button.data('dropdown').replace('#',''));}}).on('mouseleave',".js_dropdown[data-dropdown-hover]",(event)=>{if(DROPDOWN_CURRENT_ACTIVE){let $nextTarget=$(event.relatedTarget);let $button=$(event.currentTarget);if($(DROPDOWN_CURRENT_ACTIVE).data('dropdown')===$button.data('dropdown')){if($nextTarget.closest('#dropdown-portal').length===0){close_dropdown();}else{let dropdownContainer=$($button.data('dropdown'));dropdownContainer.one('mouseleave',(ev2)=>{let $thisNextTarget=$(ev2.relatedTarget);let dropdownNextTarget=$thisNextTarget.data('dropdown')||$thisNextTarget.parent().data('dropdown');if($thisNextTarget.closest("#dropdown-portal").length===0&&dropdownNextTarget!==$button.data('dropdown')){close_dropdown();}});}}}});});let SEARCH_TYPE='';let is_enter=false;
78let ARROW_POSITION=-1;let SEARCH_LAST_DATA=null;let SEARCH_FORCE_ADVANCED_SUBMIT=false;$(()=>{$(".js-search").each((i,e)=>{let $input=$(e);let $form=$input.data('submit-form')?$("#"+$input.data('submit-form')):$input.closest('form');$input.on('click',init_container) 79$input.on('input',$.debounce((event)=>{perform_search(event);},300));$input.on('keyup',arrow_navigation_search) 80$input.on('keydown',check_is_enter) 81if($form.length){$form.on('submit',send_submit);}}) 82$(".js-search-button").on('click',(e)=>{let $btn=$(e.currentTarget);let $input=$btn.closest('form').find('.js-search').first();if(is_enter){is_enter=false;return;} 83if($btn.hasClass('is-active')){e.preventDefault();e.stopPropagation();close_dropdown();$btn.removeClass('is-active');return false;} 84if($btn.hasClass('was-active')){e.preventDefault();e.stopPropagation();$btn.removeClass('was-active');return false;} 85SEARCH_FORCE_ADVANCED_SUBMIT=true;if($input.length){$input.val(($input.val()||'').normalize("NFD").replace(/[\u0300-\u036f]/g,""));}}) 86$(document).on('click','.js-searchTypeSelect',(e)=>{let $e=$(e.currentTarget),type=$e.data('type'),$button=$("*[data-search-container='"+$e.parent().parent().parent().attr('id')+"']");$(".js-searchTypeSelect").removeClass('badge--active');$(e.currentTarget).addClass('badge--active') 87if($button){$button.data('type',type);$button.trigger('input');}});function init_container(e){let $input=$(e.currentTarget);let $container=$input.closest('.search-container');let $btn=$container.find('.js-search-button');let $dropdown=$("#"+$input.data('search-container'));open_dropdown($input.data('search-container'));$dropdown.one('dropdown_off',()=>{$btn.removeClass('is-active').addClass('was-active');$input.val('');}) 88$btn.removeClass('was-active').addClass('is-active');$("body").one('mousedown',(event)=>{if(DROPDOWN_CURRENT_ACTIVE&&event.target!==DROPDOWN_CURRENT_ACTIVE&&!$(event.target).hasClass('js-search')){close_dropdown();$btn.removeClass('is-active');}}) 89perform_search(e);}}) 90function check_is_enter(event){is_enter=event.keyCode===13;} 91function perform_search(event){let searchContainerID=$(event.currentTarget).data('search-container'),searchContainer=$("#"+searchContainerID);searchContainer.find('.js-search-container').addClass('content-loading');if(!DROPDOWN_CURRENT_ACTIVE&&searchContainer.hasClass('dropdown')){open_dropdown(searchContainerID);} 92let rData={"search":$(event.currentTarget).val(),"type":$(event.currentTarget).data('type'),"search-type":$(event.currentTarget).data('search-type'),"token":$("#header-search-csrf").text().trim(),"tbf":$(event.currentTarget).data('tbf'),'only-rapid-search':$(event.currentTarget).data('quick-search'),'allow-last-consulted':$(event.currentTarget).data('last-search'),} 93call("search/quick",rData,"POST","perform_search").then((data)=>{if(!data.error){searchContainer.find('.js-search-container').replaceWith(data.data);ARROW_POSITION=data.nb===1?0:-1;arrow_init(searchContainer);SEARCH_LAST_DATA=rData;}else{searchContainer.find('.js-search-container').text(data.html)} 94searchContainer.find('.js-search-container').removeClass('content-loading');}).catch((err)=>{if(err.responseJSON&&err.responseJSON.html){searchContainer.find('.js-search-container').text(err.responseJSON.html) 95searchContainer.find('.js-search-container').removeClass('content-loading');}})} 96function arrow_init($container){let trTables=$container.find('.js-search-content').find('tr');trTables.removeClass('table-child--selected');if(ARROW_POSITION>-1){$(trTables.get(ARROW_POSITION)).addClass('table-child--selected');}} 97function arrow_navigation_search(event){if(event.keyCode===38||event.keyCode===40){ARROW_POSITION+=(event.keyCode===38)?-1:1 98if(ARROW_POSITION<0)ARROW_POSITION=0;let searchContainerID=$(event.currentTarget).data('search-container'),searchContainer=$("#"+searchContainerID);let trTables=searchContainer.find('table').find('tr');if(ARROW_POSITION>=trTables.length)ARROW_POSITION=trTables.length-1;trTables.removeClass('table-child--selected');$(trTables.get(ARROW_POSITION)).addClass('table-child--selected');} 99if(event.keyCode===37||event.keyCode===39){let searchContainerID=$(event.currentTarget).data('search-container'),searchContainer=$("#"+searchContainerID);let $navs=searchContainer.find('.js-searchTypeSelect');let hasChanged=false;$navs.each((_,e)=>{if($(e).hasClass('badge--active')&&!hasChanged){hasChanged=true;$(e).removeClass('badge--active');event.keyCode===37?($(e).prev().addClass('badge--active')&&$(e).prev().trigger('click')):($(e).next().addClass('badge--active')&&$(e).next().trigger('click'))}})}} 100function send_submit(event){let $form=$(event.currentTarget);let searchContainerID=$form.find('input[name="q"]').first().data('searchContainer');
100if(!SEARCH_FORCE_ADVANCED_SUBMIT&&ARROW_POSITION!==-1&&searchContainerID){let searchContainer=$("#"+searchContainerID);let tr=searchContainer.find('table').find('tr').get(ARROW_POSITION);if(tr&&$(tr).data('href')){event.preventDefault();is_enter=false;SEARCH_FORCE_ADVANCED_SUBMIT=false;window.location.href=$(tr).data('href');return;}} 101is_enter=false;SEARCH_FORCE_ADVANCED_SUBMIT=false;} 102function search_by_type(type){SEARCH_TYPE=type;$(".js-search").attr('type',type);$(".js-search").trigger('input');} 103function search_set_search(search){$(".js-search").val(search);$(".js-search").trigger('input');} 104$(()=>{const $loginContainer=$('#login-form');let BACK_BUTTON_TARGET="login_hub";$('#login_hub, #register_hub, #login_email, #register_email, #register_email_validation, #register_success').on('modalOpen',()=>{eTrackSS_Z4(0);}).on('modalClose',()=>{eTrackSS_Z4(15);});$(document).on('click','#login_hub .js-collapse[data-collapse-group="hub-tabs"]',(e)=>{if($(e.currentTarget).hasClass('selected')){e.stopImmediatePropagation();}});const emailInputForm='#pre-login-form, #pre-register-form';$(document).on('submit',emailInputForm,(e)=>{let $emailInputForm=$(e.currentTarget);let nextModalID=$emailInputForm.attr('id')==='pre-login-form'?'login_email':'register_email';e.preventDefault();e.form={'email':$emailInputForm.find("input[name='email']").val()};if(e.form.email){close_modal('login_hub');$("#"+nextModalID).find("input[name='email']").val(e.form.email);open_modal(nextModalID);if(nextModalID==='login_email'){$("#login-email-form").find('input[name="password"]').focus();}}});const loginEmailFormID="#login-email-form" 105$(document).on('submit',loginEmailFormID,async(e)=>{e.preventDefault();let $form=$(loginEmailFormID);let $modal=$('#login_email');$form.find('.error-message, .success-message').removeClass('display').text('');$modal.addClass('content-loading');const errorFallback=setTimeout(()=>{$modal.removeClass('content-loading');$modal.find('.error-message').html($form.data('trans')['error-captcha']).addClass('display');},3000);const captchaResponse=await loadReCaptcha($loginContainer.data('recaptchaSiteKey'),errorFallback);call('login',{login:$form.find("input[name='email']").val(),password:$form.find("input[name='password']").val(),captcha_response:captchaResponse},'POST','login').then((response)=>{if(response.error){$form.find('.error-message').text(response.message).addClass('display');$modal.removeClass('content-loading');return;} 106$form.find('.success-message').text(response.message).addClass('display');setTimeout(()=>{window.location.reload();},500);$modal.removeClass('content-loading');}).catch((err)=>{$form.find('.error-message').text(err.responseJSON.message||'__').addClass('display');$modal.removeClass('content-loading');})});const registerEmailFormID="#register-email-form";$(document).on('submit',registerEmailFormID,async(e)=>{e.preventDefault();let $form=$(registerEmailFormID);let $modal=$('#register_email');$form.find('.error-message, .success-message').removeClass('display').text('');let data={email:$form.find("input[name='email']").val(),password:$form.find("input[name='new_password']").val(),firstname:$form.find("input[name='firstname']").val(),lastname:$form.find("input[name='lastname']").val(),zonebourse_offers:$form.find("input[name='zonebourseOffers']").is(':checked')?1:0,partners_offers:$form.find("input[name='partnerOffers']").is(':checked')?1:0,} 107if(!data.email){$form.find("input[name='email']").prop('readonly',false).prop('disabled',false).focus();} 108if(!data.email||!data.password||!data.firstname||!data.lastname||!(data.firstname.trim())||!(data.lastname.trim())){$form.find('.error-message').html($form.data('trans')['error-required-fields']).addClass('display');return;} 109if($(".password-requirements").attr('data-valid')!=='true'){$form.find('input[name="new_password"]').addClass('input--danger');$form.find('input[name="new_password"]').focus();return;} 110$modal.addClass('content-loading');const errorFallback=setTimeout(()=>{$modal.removeClass('content-loading');$modal.find('.error-message').html($form.data('trans')['error-captcha']).addClass('display');},3000);data['captcha_response']=await loadReCaptcha($loginContainer.data('recaptchaSiteKey'),errorFallback);call("register-email",data,"POST","register").then((response)=>{if(response.error){} 111if(!$("#login_hub_next_modal").length){$('body').append('<div id="login_hub_next_modal"></div>');} 112$("#login_hub_next_modal").append(response['nextModal']);close_modal('register_email');open_modal('register_email_validation',true);eTrackSS_Z4(0);}).catch((err)=>{let msg=$form.data('trans')[err.responseJSON?.message]||err.responseJSON?.message||$form.data('trans')['error-generic'];$form.find('.error-message').html(msg).addClass('display');}).finally(()=>{$modal.removeClass('content-loading');});});const registerEmailValidationFormID="#register-email-validation-form";$(document).on('submit',registerEmailValidationFormID,async(e)=>{e.preventDefault();let $modal=$('#register_email_validation');let $form=$(registerEmailValidationFormID);$form.find('.error-message, .success-message').removeClass('display').text('');$modal.addClass('content-loading');const errorFallback=setTimeout(()=>{$modal.removeClass('content-loading');$modal.find('.error-message').html($form.data('trans')['error-captcha']).addClass('display');},3000);const captchaResponse=await loadReCaptcha($loginContainer.data('recaptchaSiteKey'),errorFallback);call('register-validate-email',{crypted_client_id:$form.find("input[name='crypted_client_id']").val(),validation_code:$form.find("input[name='otp_validation_code']").val(),captcha_response:captchaResponse},'POST','register').then((response)=>{if(response.error){$form.find('.error-message').text(response.message).addClass('display');return;} 113if(!$("#login_hub_next_modal").length){$('body').append('<div id="login_hub_next_modal"></div>');} 114$("#login_hub_next_modal").append(response['nextModal']);close_modal('register_email_validation');open_modal('register_success',true);setTimeout(()=>{window.location.reload();},5000);}).catch((err)=>{let msg=$form.data('trans')[err.responseJSON?.message]||err.responseJSON?.message||$form.data('trans')['error-generic'];$form.find('.error-message').text(msg).addClass('display');$form.find("input[name='otp_validation_code']").val('').focus();}).finally(()=>{$modal.removeClass('content-loading');});});$(document).on('click','.js-member-yet',(e)=>{e.preventDefault();close_modal('register_hub');open_modal('login_hub');BACK_BUTTON_TARGET="login_hub";}) 115if($("#register_email_validation").length){setTimeout(()=>{open_modal('register_email_validation',true);},1000)} 116$(document).on('click','.login-form--back',(e)=>{close_modal(MODAL_CURRENTLY_DISPLAYED);open_modal(BACK_BUTTON_TARGET);});});$(()=>{$(document).on('click','.auth-btn',(e)=>{let $button=$(e.currentTarget),url=$button.data('target'),$modal=$("#"+MODAL_CURRENTLY_DISPLAYED);$modal.addClass('content-loading');let checkFocusInterval=setInterval(()=>{if(document.hasFocus()){$modal.removeClass('content-loading');clearInterval(checkFocusInterval);}},500);window.open(url,'popup','width=600,height=720');window.addEventListener('message',(e)=>{let data=e.data;if(!data['zb_auth'])return;if(data.error){if(MODAL_CURRENTLY_DISPLAYED==='user_data_modal'){Toast.Error(data.message) 117return;} 118$modal.find('.error-message').text(data.message).addClass('display');$modal.find('.success-message').text('');if(data['redirect']&&typeof data['redirect']==='string'){window.location.href=data['redirect'];}}else{$modal.find('.error-message').text('').removeClass('display');$modal.find('.success-message').text(data.message).addClass('display');if(window.location.pathname==="/logout/") 119window.location.href="/";else 120window.location.reload();} 121clearInterval(checkFocusInterval);});});$(document).on('click','.input--show-password__icon',(e)=>{let 122icon=$(e.currentTarget),container=icon.parent(),input=container.find('input');if(input.attr('type')==='password'){input.attr('type','text');icon.addClass('bi-eye-fill').removeClass('bi-eye-slash-fill');}else{input.attr('type','password');
122icon.removeClass('bi-eye-fill').addClass('bi-eye-slash-fill');}}) 123$(document).on('focusin',"input[name='new_password']",(e)=>{$('.password-requirements').addClass('active');});$(document).on('focusout',"input[name='new_password']",(e)=>{$('.password-requirements').removeClass('active');});$(document).on('input',"input[name='new_password']",(e)=>{const password=e.currentTarget.value;const $requirementsItems=$('.password-requirements span:not(.success)');let progression=[0,$requirementsItems.length];$requirementsItems.each((_,item)=>{const $item=$(item);const regexp=$item.data('regexp');const minLength=$item.data('min-length');let completed=false;if(minLength){if(password.length>=minLength){$item.addClass('met');completed=true;}else{$item.removeClass('met');}} 124if(regexp){const re=new RegExp(regexp);if(re.test(password)){$item.addClass('met');completed=true;}else{$item.removeClass('met');}} 125if(completed){progression[0]+=1;}});const progressPercent=(progression[0]/progression[1])*100;$(".password-requirements").attr('data-valid',(progressPercent===100)?'true':'false');$("error-message").removeClass('display').text('');$("input[name='new_password']").removeClass('input--danger').toggleClass('input--success',(progressPercent===100));});$(document).on('input',"input[name='otp_validation_code']",(e)=>{let value=e.currentTarget.value;value=value.replace(/[^0-9]/g,'').substring(0,6);e.currentTarget.value=value;});$(document).on('modalOpen',"#register_email_validation",(e)=>{launchCountdown();});$(document).on('click','.js-resend-validation-code',()=>{let $modal=$('#register_email_validation');let $form=$("#register-email-validation-form");$modal.find('.error-message, .success-message').text('').removeClass('display');$modal.addClass("content-loading");call('register-validate-email-resend').then((response)=>{let message=$form.data('trans')[response.message]||response.message;if(response.error){$modal.find('.error-message').text(message).addClass('display');if(response['remaining_time']){$(".js-email-validation-counter").text(response['remaining_time'].toString().padStart(2,'0'));}}else{$modal.find('.success-message').text(message).addClass('display');} 126launchCountdown();}).catch((err)=>{$modal.find('.error-message').text($form.data('trans')['error-generic']).addClass('display');}).finally(()=>{$modal.removeClass("content-loading");})});function launchCountdown(){$(".js-email-validation-counter-active").removeClass('c-none');$(".js-email-validation-counter-allowed").addClass('c-none');let $decrementCounter=$(".js-email-validation-counter");let counter=parseInt($decrementCounter.text())||120;let interval=setInterval(()=>{counter-=1;if(counter<=0){clearInterval(interval);$decrementCounter.text('0');$(".js-email-validation-counter-active").addClass('c-none');$(".js-email-validation-counter-allowed").removeClass('c-none');return;} 127$decrementCounter.text(counter.toString().padStart(2,'0'));},1000);}});const loadReCaptcha=(siteKey,errorFallbackTimeout)=>{return new Promise((resolve,reject)=>{$.getScript(`https://www.google.com/recaptcha/api.js?render=${siteKey}`,function(){grecaptcha.ready(function(){grecaptcha.execute(siteKey,{action:'submit'}).then(function(token){$('#captcha_response').val(token);clearTimeout(errorFallbackTimeout);resolve(token);});});});})};let MODAL_CURRENTLY_DISPLAYED;let modalPortalID="modal-portal-"+Math.random().toString(36).substring(7);const MODAL_PORTAL=document.createElement('div');MODAL_PORTAL.id=modalPortalID;document.body.append(MODAL_PORTAL);let MODAL_DATA={};$(()=>{$(document).on('click','.js_modal_button',create_modal_from_event);if($("#dPubBgC_PU").length){if(document.getElementById("user_data_modal")==null)return;let userDataModal=$("#user_data_modal");userDataModal.css('background','transparent');userDataModal.find('.modal__content').html($('#dPubBgC_PU').children());open_modal("user_data_modal",true);$("body").css('overflow','hidden');}else if($("#modalAutoStart").length){open_modal("modalAutoStart",true);}else if($("[data-modal-auto-start]").length){let modalID=$("[data-modal-auto-start='true']").attr('id');open_modal(modalID);} 128window.addEventListener('message',function(event){if(event.data.iframeId=='popupContact'&&event.data.func=="popupResize") 129{$(".modal").css('max-height','calc(100vh - 150px)');$(".modal").css('height','100%');$(".modal").css('overflow','inherit');$(".modal__content").css('padding','0');$(".modal__content").css('margin','0');$(".modal__content").css('max-height','calc(100vh - 150px)');$(".modal__content").css('height','100%');$(".modal__content").css('overflow','inherit');$("#"+modalPortalID+" iframe").css('height','100%');}});});function open_modal(modal_id,bNotClosable=false){if(MODAL_CURRENTLY_DISPLAYED!=null){close_modal(MODAL_CURRENTLY_DISPLAYED);} 130let $modal=$("#"+modal_id);
130if($modal.length===0){debug("Modal with id "+modal_id+" not found");return;} 131MODAL_CURRENTLY_DISPLAYED=modal_id;let $modalContent=$modal.find('.modal__content');let content="";if($modalContent.length>0){content=$modalContent.html().trim();} 132MODAL_DATA[modal_id]={'originalParent':$modal.parent(),'originalNextSibling':$modal.next()};$(MODAL_PORTAL).append($modal);if(content.indexOf("<!--")>=0) 133{content=content.match(/<!--[\s\S]*-->/)[0];content=content.replace(/<!--/,'').replace(/-->/,'');let modalContent=$modal.find('.modal__content');if(modalContent){modalContent.html(content);}} 134if($modal.hasClass('modal--no-refresh')){eTrackSS_Z4(0);} 135setTimeout(()=>{$modal.addClass('modal--active');$modal.trigger('modalOpen');$("*[data-modal='"+modal_id+"']").trigger('modalOpen');},10);$("body").toggleClass('has-modal-active').append("<div class='modal_backdrop'></div>");if(bNotClosable===false){$(document).on('keyup',close_modal_if_esc_key);$(document).on('click',close_modal_if_backdrop);}} 136function close_modal(modal_id,bReloadOnClose=false){if(MODAL_CURRENTLY_DISPLAYED===modal_id){MODAL_CURRENTLY_DISPLAYED=null;} 137let $modal=$("#"+modal_id),content=$($modal.find(".modal__content")[0]).html();if(content){if(content.indexOf("<iframe")>=0) 138$($modal.find(".modal__content")[0]).html("<!--"+content+"-->");} 139if(bReloadOnClose){window.location.reload();} 140if($modal.hasClass('modal--no-refresh')){eTrackSS_Z4(15);} 141$modal.removeClass('modal--active');remove_modal_backdrops();$modal.trigger('modalClose');$("*[data-modal='"+modal_id+"']").trigger('modalClose');$("body").css('overflow','');setTimeout(()=>{let originalParent=MODAL_DATA[modal_id]['originalParent'];let originalNextSibling=MODAL_DATA[modal_id]['originalNextSibling'];if(originalNextSibling.length){originalNextSibling.before($modal);}else{originalParent.append($modal);}},500);} 142function create_modal_from_event(event){if(MODAL_CURRENTLY_DISPLAYED===$(event.currentTarget).data('modal')){close_modal(MODAL_CURRENTLY_DISPLAYED);}else{open_modal($(event.currentTarget).data('modal'));}} 143function create_modal_from_js(modal_id){open_modal(modal_id);} 144function toggle_modal_action(){$("body").toggleClass('has-modal-active');if($(".modal_brackdrop").length){$(".modal_backdrop").remove();$(document).off('keyup');}else 145$("body").append("<div class='modal_backdrop'></div>");} 146function remove_modal_backdrops(){$(document).off('keyup',close_modal_if_esc_key);$(document).off('click',close_modal_if_backdrop);$("body").removeClass("has-modal-active");$(".modal_backdrop").remove();} 147function close_modal_if_esc_key(e){if(e.keyCode==27){close_modal(MODAL_CURRENTLY_DISPLAYED);}} 148function close_modal_if_backdrop(event){if($(event.target).hasClass('modal_backdrop')){close_modal(MODAL_CURRENTLY_DISPLAYED);}} 149if(typeof class_popup_show==='undefined'){function class_popup_show(id,iframe,widthF,heightF,bAddCloseBtn=false,bReloadOnClose=false,bNoPadding=false,sCrossClass='') 150{if(document.getElementById("user_data_modal")==null)return;var myDivPubBg=$('body');myDivPubBg.prepend('<div id="fade"></div>');var html='<div class="class_popup PopupCertif" data-id="'+id+'" name="PopupCertif" >';html+='<div class="class_popup_div PopupCertifDiv"></div>';html+='</div>';iRealWidth=Math.min(parseInt(widthF),0.8*window.innerWidth);iRealHeight=Math.min(parseInt(heightF),0.9*window.innerHeight);window.addEventListener('message',function(evt){if(evt.data.func=="popupResize"){$("#user_data_modal iframe").attr('height',evt.data.h)} 151if(evt.data.func=="popupClose") 152{if('reload'in evt.data){window.location.reload();} 153close_modal('user_data_modal')} 154if(evt.data.func=="popupChangeCloseAction") 155close_modal('user_data_modal')});html+='<iframe width="'+iRealWidth+'" height="'+iRealHeight+'" id="prcIframe" class="prcIframe" iframeId="'+id+'" data-id="'+id+'" src="'+iframe+'" frameborder=0 >';let userDataModal=$("#user_data_modal");userDataModal.find(".modal__content").html(html);if(bNoPadding) 156userDataModal.find(".modal__content").addClass('p-0-i');if(bAddCloseBtn&&userDataModal.find(".modal__close-btn").length===0) 157{userDataModal.prepend('<span class="js_modal_close modal__close-btn cursor-pointer" onclick="close_modal(\'user_data_modal\','+bReloadOnClose+')"><i class="bi-x-circle-fill txt-s7 '+sCrossClass+'"></i></span>');} 158open_modal("user_data_modal",true);}} 159$(()=>{close_dropdown();$(document).on('click collapse_group_off','.js-collapse',((event)=>{internalCollapse(event);}));function internalCollapse(event){let $button=$(event.currentTarget);let $collapse=$("#"+($button.data('collapse')));if($button.data('collapse-group')&&event.type==='click'){let collapseGroupName=$button.data('collapse-group');$("*[data-collapse-group='"+collapseGroupName+"']").each((i,e)=>
159{if($(e).data('collapse')!==$button.data('collapse')){if($("#"+$(e).data('collapse')).hasClass('collapsed')){console.log($(e).data('collapse'));$(e).trigger('collapse_group_off');}}})} 160let reg='> .card-content, > .card-footer';if($button.data('collapseCustom')){reg=$button.data('collapseCustom');} 161let $content=$collapse.find(reg);if($content.length===0){$content=$collapse} 162let isActive;if($content.css('display')==="none"){isActive=false;if($button.data('collapseNoAnimation')){$content.css('display','');$button.trigger('collapse_on');if(typeof $button.data('notCollapsed')!=='undefined'){$button.html($button.data('notCollapsed'));}}else{$content.slideDown(200,function(){$(window).trigger('touchmove');$button.trigger('collapse_on');if(typeof $button.data('notCollapsed')!=='undefined'){$button.html($button.data('notCollapsed'));}});}}else{isActive=true;if($button.data('collapseNoAnimation')){$content.css('display','none');$button.trigger('collapse_off');if(typeof $button.data('collapsed')!=='undefined'){$button.html($button.data('collapsed'));}}else{$content.slideUp(200,()=>{$button.trigger('collapse_off');if(typeof $button.data('collapsed')!=='undefined'){$button.html($button.data('collapsed'));}});}} 163$collapse.removeClass((isActive?'collapsed':''));$collapse.addClass((isActive?'':'collapsed'));if($button.find('i').length>0&&((isActive&&(typeof $button.data('collapsed')==='undefined'))||(!isActive&&(typeof $button.data('notCollapsed')==='undefined')))){$button.find('i').each((i,e)=>{let $e=$(e);if($e.hasClass('bi-chevron-down')||$e.hasClass('bi-chevron-up')){$e.addClass(isActive?'bi-chevron-down':'bi-chevron-up').removeClass(isActive?'bi-chevron-up':'bi-chevron-down');} 164if($e.hasClass('bi-chevron-double-down')||$e.hasClass('bi-chevron-double-right')){$e.addClass(isActive?'bi-chevron-double-down':'bi-chevron-double-right').removeClass(isActive?'bi-chevron-double-right':'bi-chevron-double-down');} 165if($e.hasClass('bi-plus-circle-dotted')||$e.hasClass('bi-dash-circle-dotted')){$e.addClass(isActive?'bi-plus-circle-dotted':'bi-dash-circle-dotted').removeClass(isActive?'bi-dash-circle-dotted':'bi-plus-circle-dotted');} 166if($e.hasClass('bi-caret-right-fill')||$e.hasClass('bi-caret-down-fill')){$e.addClass(isActive?'bi-caret-right-fill':'bi-caret-down-fill').removeClass(isActive?'bi-caret-down-fill':'bi-caret-right-fill');}})}else if($button.hasClass('badge')){$button.toggleClass('badge--active',!isActive);}else if($button.hasClass('badge-tab')||$button.hasClass('item-2')){$button.toggleClass('selected',!isActive);}else if($button.hasClass('btn')){$button.toggleClass('btn--client--inner',!isActive);}else if($button.hasClass('item')){$button.toggleClass('item--active',!isActive);} 167$(window).trigger('scroll');}});var RS_TAB=0;var ACTIVE_GRAPH_ID=0;$(()=>{if(typeof RS_ASYNC!='undefined'&&RS_ASYNC===true){call('right-sidebar/get',{},'GET').then((response)=>{$(".rsidebar__component.rsidebar__indexes").replaceWith($(response).find(".rsidebar__component.rsidebar__indexes"));focus_on_first_element();$("#rs-watchlist").replaceWith($(response).find("#rs-watchlist"));$("#rs-palmares-0").replaceWith($(response).find("#rs-palmares-0"));$("#rs-palmares-1").replaceWith($(response).find("#rs-palmares-1"));$(".js-rs-quotes").each((i,e)=>{$(e).replaceWith($(response).find(".js-rs-quotes").get(i))}) 168$(".js-quotation-row-graph").hover((e)=>{toggle_focus_element(e.currentTarget)})
169$(document).on('change','.js-palmares-select',(event)=>{update_palmares(event.currentTarget)}) 170$(document).on('change','.js-rs-watchlist',(event)=>{update_watchlist(event.currentTarget)}) 171launch_highcharts();$("body").append($(response).find('script[data-action="subbing-quotes"]'));});}else{launch_highcharts();focus_on_first_element();$(".js-quotation-row-graph").hover((e)=>{toggle_focus_element(e.currentTarget)}) 172$(document).on('change','.js-palmares-select',(event)=>{update_palmares(event.currentTarget)}) 173$(document).on('change','.js-rs-watchlist',(event)=>{update_watchlist(event.currentTarget)})}}) 174function rs_switch_tab(tab){$(".js_rs__tab").removeClass("rsidebar__indexes__container__tab--active");$(`.js_rs__tab[data-tab="${tab}"]`).addClass("rsidebar__indexes__container__tab--active");$(".js_rs__link").removeClass("rsidebar__indexes__menu__row--active") 175$(`.js_rs__link[data-tab="${tab}"]`).addClass("rsidebar__indexes__menu__row--active");SOCKET_STREAMING_INSTANCE.scroll_lazy_loading();} 176function focus_on_first_element(){$(".quotation_table").each((_,e)=>{$(e).find('.js-quotation-row-graph').first().addClass("quotation_table__row--focused");})} 177function toggle_focus_element(element){$(element).parent().parent().parent().find(".quotation_table__row--focused").removeClass("quotation_table__row--focused");$(element).addClass("quotation_table__row--focused");update_graph_with(element);} 178function update_graph_with(element){let Name=$(element).data('graph-id');let Prev=$(element).data('graph-previous');let $graph=$(element).parent().parent().parent().find('.js_rs__graph');$graph.attr('src',$graph.data('src').replace('{Name}',Name).replace('{Prev}',Prev));} 179function update_palmares(select){let $select=$(select),order=$select.data('order'),sIndex=$select.find(':selected').val(),$container=$select.closest('.rsidebar__component');$container.addClass('content-loading');if(sIndex==="not_set")return;call(`right-sidebar/palmares-${order}/set?v=1`,{index:sIndex}).then((html)=>{$("#rs-palmares-"+order).replaceWith(html);$container.removeClass('content-loading');drawRightSidebarHeatmap({inDiv:"palmares-heatmap-"+order,target:sIndex})})} 180function update_watchlist(select){let $select=$(select),sCleValeurs=$(select).find(':selected').val(),$container=$select.closest('.rsidebar__component');if(sCleValeurs.length>0){$container.addClass('content-loading');call(`right-sidebar/mylist/set?v=1`,{sCleValeurs:sCleValeurs}).then((html)=>{$("#rs-watchlist").replaceWith(html);$container.removeClass('content-loading');})}} 181$(()=>{launch_highcharts();});async function launch_highcharts(){let HL_LAZY_LOADED=[];await $(".js-highcharts-trigger").each(async(i,e)=>{$(e).removeClass("js-highcharts-trigger");if($(e).data('lazy-loaded')&&!$(e).isInViewport()){HL_LAZY_LOADED.push({element:$(e),fctName:$(e).data('fct-name'),fctAttr:$(e).data('fct-attr')});}else{if($(e).data('fct-name')){await window[$(e).data('fct-name')]($(e).data('fct-attr'));}}}) 182const debouncedCheck=$.debounce(check_hl_lazy_loading,200);if(HL_LAZY_LOADED.length>0){debouncedCheck();$(window).off('resize scroll touchmove',debouncedCheck).on("resize scroll touchmove",debouncedCheck);} 183function check_hl_lazy_loading(){if(HL_LAZY_LOADED.length===0){$(window).off('resize scroll touchmove',debouncedCheck);return;} 184HL_LAZY_LOADED=HL_LAZY_LOADED.filter(e=>{if(e.element.isInViewport()){window[e.fctName](e.fctAttr);return false;} 185return true;});}} 186HEATMAP_PALMARES_INSTANCES={};async function drawRightSidebarHeatmap(params){let myHeatmap=new Heatmap(params.inDiv,params.target,Heatmap.TYPE_INDEX_ZONE) 187myHeatmap.updateChartWithOptions() 188HEATMAP_PALMARES_INSTANCES[params.inDiv]=myHeatmap} 189function loadDataForHeatmapPalmares(idHighchart,index){if(index==='not_set'){return} 190let myHeatmap=HEATMAP_PALMARES_INSTANCES[idHighchart] 191if(myHeatmap){myHeatmap.setTarget(index) 192myHeatmap.updateChartWithOptions()}} 193let HEATMAP_INSTANCES={};let HEATMAP_DYNAMIC_LABEL_SIZE=[];class Heatmap{static TYPE_INSTRUMENT="instrument" 194static TYPE_INDEX_ZONE="zone" 195static TYPE_PORTFOLIO="portfolio" 196static TYPE_LIST="list" 197static TYPE_CUSTOM="custom" 198static TYPE_SCREENER="screener" 199static#AVAILABLE_TYPES=[Heatmap.TYPE_INSTRUMENT,Heatmap.TYPE_INDEX_ZONE,Heatmap.TYPE_PORTFOLIO,Heatmap.TYPE_LIST,Heatmap.TYPE_CUSTOM,Heatmap.TYPE_SCREENER] 200static GROUPING_INDUSTRIES="I" 201static GROUPING_SUPER_SECTORS="SS" 202static GROUPING_SECTORS_BY_SUPER_SECTORS="SbSS" 203static GROUPING_SHARES_BY_INDUSTRIES="sbI" 204static GROUPING_SHARES_BY_SUPER_SECTORS="sbSS" 205static GROUPING_SHARES_BY_SUPER_SECTORS_BY_INDUSTRIE="sbSSbI" 206static GROUPING_SHARES_BY_SECTORS="sbS" 207static GROUPING_SHARES="s" 208static#AVAILABLE_GROUPING=[Heatmap.GROUPING_INDUSTRIES,Heatmap.GROUPING_SUPER_SECTORS,Heatmap.GROUPING_SECTORS_BY_SUPER_SECTORS,Heatmap.GROUPING_SHARES_BY_INDUSTRIES,Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS,Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS_BY_INDUSTRIE,Heatmap.GROUPING_SHARES_BY_SECTORS,Heatmap.GROUPING_SHARES] 209static WEIGHT_EQUI="equi" 210static WEIGHT_CAPI="capi" 211static WEIGHT_COMPO="compo" 212static WEIGHT_USER_LIST="listposition" 213static WEIGHT_FFLOAT="ffcapi" 214static#AVAILABLE_WEIGTHS=[Heatmap.WEIGHT_EQUI,Heatmap.WEIGHT_CAPI,Heatmap.WEIGHT_COMPO,Heatmap.WEIGHT_USER_LIST,Heatmap.WEIGHT_FFLOAT] 215static#DEFAULT_OPTIONS={chart:{spacingLeft:0,spacingRight:0,spacingTop:0,spacingBottom:0,plotBackgroun
215dColor:"#27292F"},colorAxis:{gridLineWidth:0,labels:{format:'{#gt value 0}+{value}{else}{value}{/gt}%',overflow:'allow'},lineColor:"black",lineWitch:1,maxColor:'#00ff00',minColor:'#ff0000',stops:[[0,'#ff0000'],[0.5,'#444444'],[1,'#00ff00']],tickAmount:5},credits:{enabled:false},exporting:{enabled:false},legend:{enabled:false},navigation:{buttonOptions:{theme:{fill:'#252931',states:{hover:{fill:'#333',style:{color:'white'}}},style:{color:'silver',whiteSpace:'nowrap'}},symbolStroke:'silver',useHTML:true,y:-2}},plotOptions:{treemap:{dataLabels:{style:{fontSize:'0.8em',}},layoutAlgorithm:'squarified'}},responsive:{rules:[{chartOptions:{plotOptions:{treemap:{dataLabels:{style:{fontSize:'0.6em',}},layoutStartingDirection:'horizontal',}}},condition:{callback:function(){return this.chartHeight<450&&this.chartWidth<500;}}}]},title:{text:''},tooltip:{headerFormat:'{#if point.custom.link}<a target="_blank" href="{point.custom.link}">{/if}'+'{point.custom.fullName}{#if point.custom.link}</a>{/if}<br/>',outside:true,pointFormatter:function(){let renderDivId=this.series.chart.renderTo.id,sWeight=$("#heatmapWeight_"+renderDivId).val()??Heatmap.WEIGHT_CAPI,sReturn="" 216if(sWeight==="compo"){sReturn+="<b>"+heatmapWording.Weight+"</b>: "+Highcharts.numberFormat(this.value,2)+" %<br/>"}else if(sWeight==="capi"){sReturn+="<b>"+heatmapWording.Size+"</b>: "+Highcharts.numberFormat(Math.floor(this.value/1000000),0)+" M$<br/>"}else if(sWeight==="ffcapi"){sReturn+="<b>"+heatmapWording.FreeFloat+": "+Highcharts.numberFormat(Math.floor(this.value/1000000),0)+" M$<br/>"} 217if(this.custom.performance){let color=this.custom.performance>0?'#008000':'#CC0000',sign=this.custom.performance>0?"+":"" 218sReturn+='<b>'+heatmapWording.Change+':</b> <span style="color: '+color+';">'+sign+Highcharts.numberFormat(this.custom.performance,2)+'%</spans>'} 219return sReturn},stickOnContact:true,style:{fontSize:"1.1em",pointerEvents:'auto'},useHTML:true}} 220static SERIES_OPTIONS={allowDrillToNode:true,animationLimit:1000,borderColor:'#252931',breadcrumbs:{buttonTheme:{style:{color:'#5c5c5c'},states:{hover:{fill:'#e6e6e6'},select:{style:{color:'black'}}}}},color:'#252931',dataLabels:{enabled:false,allowOverlap:false,style:{textOutline:'black',"textShadow":"rgb(0 0 0 / 70%) 1px 1px 3px, rgb(0 0 0 / 70%) -1px 1px 3px, rgb(0 0 0 / 70%) 1px -1px 3px, rgb(0 0 0 / 70%) -1px -1px 3px"}},id:"treemapSeries",interactByLeaf:true,name:'Tout',nodeSizeBy:'leaf',opacity:0.01,type:'treemap'} 221static#OPTIONS_1_LEVEL=[{level:1,borderWidth:2,dataLabels:{align:"center",allowOverlap:true,borderWidth:0,enabled:true,format:'{point.name}<br><span style="font-size: 0.7em">'+'{#gt point.custom.performance 0}+{else}{/gt}{point.custom.performance:.2f}%</span>',padding:5,style:{"color":"white","fontWeight":"normal","textShadow":"0 0 4px black"},verticalAlign:'middle',zIndex:10}}] 222static#OPTIONS_2_LEVEL=[{level:1,borderWidth:3,dataLabels:{align:'left',enabled:true,headers:true,padding:5,style:{fontWeight:'bold',lineClamp:1}},levelIsConstant:false},{level:2,dataLabels:{align:'center',enabled:true,format:'{point.name}<br><span style="font-size: 0.7em">'+'{#gt point.custom.performance 0}+{else}{/gt}{point.custom.performance:.2f}%</span>',style:{color:'white',"fontWeight":"normal"}}}] 223static#OPTIONS_3_LEVELS=[{level:1,borderWidth:3,dataLabels:{align:'left',enabled:true,headers:true,padding:5,style:{fontSize:'0.8em',fontWeight:'bold',lineClamp:1}},levelIsConstant:false},{level:2,dataLabels:{align:'center',backgroundColor:'gray',borderColor:'#252931',borderWidth:2,enabled:true,headers:true,padding:2,shape:'callout',style:{color:'white',fontSize:'0.6em',fontWeight:'normal',lineClamp:1,textOutline:'none'}},groupPadding:1},{level:3,dataLabels:{align:'center',enabled:true,format:'{point.name}<br><span style="font-size: 0.7em">'+'{#gt point.custom.performance 0}+{else}{/gt}{point.custom.performance:.2f}%</span>',style:{color:'white'}}}] 224#adaptiveLabelSize 225#chartOptions 226#heatmap 227#idDiv 228#target 229#type 230constructor(idDiv,target,type){if(!Heatmap.#AVAILABLE_TYPES.includes(type)){debug("HEATMAP : Unknown heatmap type parameter") 231return}
232if($("#"+idDiv).length!==1){debug("HEATMAP : div with id '"+idDiv+"' not found.") 233return} 234this.#adaptiveLabelSize=true 235this.#chartOptions=deepClone(Heatmap.#DEFAULT_OPTIONS) 236this.#heatmap=Highcharts.chart(idDiv,this.#chartOptions) 237this.#idDiv=idDiv 238this.#target=target 239this.#type=type 240HEATMAP_INSTANCES[idDiv]=this} 241updateChartWithOptions(){let urlCall,parameters,chartDiv=this.#idDiv,sGrouping=$("#heatmapGrouping_"+chartDiv).val()??Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS_BY_INDUSTRIE,sWeight=$("#heatmapWeight_"+chartDiv).val()??Heatmap.WEIGHT_CAPI,sColor=$("#heatmapColor_"+chartDiv).val()??"F271",requestMethod="GET" 242let heatmap=this.#heatmap 243heatmap.showLoading() 244switch(this.#type){case Heatmap.TYPE_LIST:urlCall='charts/lists/heatmap-list' 245parameters={idList:this.#target,grouping:sGrouping,varia:sColor,weight:sWeight} 246break 247case Heatmap.TYPE_PORTFOLIO:urlCall='charts/portfolio/heatmap-portfolio' 248parameters={idPortfolio:this.#target,grouping:sGrouping,varia:sColor,weight:sWeight} 249break 250case Heatmap.TYPE_CUSTOM:if(typeof this.#target=='object'){this.#target=btoa(JSON.stringify(this.#target))} 251urlCall='charts/screener/heatmap' 252requestMethod="POST" 253parameters={codezbs:this.#target,grouping:sGrouping,varia:sColor,weight:sWeight} 254break 255case Heatmap.TYPE_INDEX_ZONE:urlCall='graph/heatmap/components-perf' 256parameters={zone:this.#target,grouping:sGrouping,varia:sColor,weight:sWeight} 257break 258case Heatmap.TYPE_SCREENER:return 259case Heatmap.TYPE_INSTRUMENT:default:urlCall='graph/heatmap/components-perf' 260parameters={codezb:this.#target,grouping:sGrouping,varia:sColor,weight:sWeight} 261break} 262call(urlCall,parameters,requestMethod).then((data)=>{if(data["error"]===false){this.handleHeatmapResponse(data)}else{console.log("Error received : "+data["message"])}}).catch((myError)=>{console.log("Exception : ") 263console.log(myError) 264console.log('no_data_hes')})} 265setTarget(newTarget){this.#target=newTarget} 266handleHeatmapResponse(data){let heatmap=this.#heatmap,chartDiv=this.#idDiv,sGrouping=$("#heatmapGrouping_"+chartDiv).val()??Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS_BY_INDUSTRIE 267heatmap.hideLoading() 268this.#adaptiveLabelSize=false 269let levelOptions;switch(sGrouping){case Heatmap.GROUPING_SHARES:this.#adaptiveLabelSize=true 270case Heatmap.GROUPING_INDUSTRIES:case Heatmap.GROUPING_SUPER_SECTORS:levelOptions=[...Heatmap.#OPTIONS_1_LEVEL] 271break 272case Heatmap.GROUPING_SHARES_BY_INDUSTRIES:case Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS:case Heatmap.GROUPING_SHARES_BY_SECTORS:this.#adaptiveLabelSize=true 273case Heatmap.GROUPING_SECTORS_BY_SUPER_SECTORS:levelOptions=[...Heatmap.#OPTIONS_2_LEVEL] 274break 275case Heatmap.GROUPING_SHARES_BY_SUPER_SECTORS_BY_INDUSTRIE:this.#adaptiveLabelSize=true 276levelOptions=[...Heatmap.#OPTIONS_3_LEVELS] 277break} 278if(this.#adaptiveLabelSize){this.#registerChartToAdaptativeLabelSize()}else{this.#unregisterChartToAdaptativeLabelSize()} 279if(heatmap.get("treemapSeries")){heatmap.get("treemapSeries").remove(false)} 280let newSeries={...Heatmap.SERIES_OPTIONS} 281newSeries.data=data["data"] 282newSeries.levels=levelOptions 283heatmap.addSeries(newSeries,false) 284let aExtrems=this.#calculateHeatmapColorExtrems(data["data"].filter(x=>typeof(x.colorValue)!=="undefined"),"colorValue") 285heatmap.colorAxis[0].update({max:Math.ceil(aExtrems[1]),min:Math.floor(aExtrems[0])})} 286destroy(){this.#unregisterChartToAdaptativeLabelSize() 287this.#heatmap.destroy() 288delete HEATMAP_INSTANCES[this.#idDiv]} 289#calcAverageAndStandardDeviation(aData,field){if(!Array.isArray(aData)||aData.length===0){return[0,0];} 290let somme=0;$.each(aData,function(i,data){somme+=data[field];});let moy=somme/aData.length;somme=0;$.each(aData,function(i,data){somme+=Math.pow(data[field]-moy,2);});let fEt=Math.sqrt(somme/aData.length);return[moy,fEt];} 291#filterByStandardDeviation(series,field,threshold){let xMin=null,xMax=null,fEt=0,prevfEt=null,currentList=[],prevList=series.slice();do{if(xMin==null) 292currentList=prevList.slice();else 293{prevfEt=fEt;prevList=currentList.slice();currentList=[];$.each(prevList,function(i,elmnt) 294{if(elmnt[field]>=xMin&&elmnt[field]<=xMax) 295currentList.push(elmnt);});} 296var aRes=this.#calcAverageAndStandardDeviation(currentList,field),fMoy=aRes[0];fEt=aRes[1];xMin=fMoy-1.96*fEt;xMax=fMoy+1.96*fEt;} 297while(currentList.length>2&&(prevfEt==null||(Math.abs(fEt-prevfEt)/prevfEt)>threshold));return prevList;} 298#calculateHeatmapColorExtrems(series,field){var significativeList=this.#filterByStandardDeviation(series,field,0.1);let fValMax=null;$.each(significativeList,function(i,aPoint){if(fValMax==null||Math.abs(aPoint[field])>fValMax) 299fValMax=Math.abs(aPoint[field]);});return[-fValMax,fValMax];} 300#registerChartToAdaptativeLabelSize(){let index=HEATMAP_DYNAMIC_LABEL_SIZE.indexOf(this.#heatmap);if(index===-1){HEATMAP_DYNAMIC_LABEL_SIZE.push(this.#heatmap)}} 301#unregisterChartToAdaptativeLabelSize(){let index=HEATMAP_DYNAMIC_LABEL_SIZE.indexOf(this.#heatmap);if(index!==-1){HEATMAP_DYNAMIC_LABEL_SIZE.splice(index,1)}}} 302Highcharts.addEvent(Highcharts.Series,'drawDataLabels',function(){if(this.t
302ype==='treemap'&&HEATMAP_DYNAMIC_LABEL_SIZE.includes(this.chart)){this.points.forEach(point=>{if(point.node.children.length===0&&point.shapeArgs){const area=point.shapeArgs.width*point.shapeArgs.height 303point.dlOptions.style.fontSize=`${Math.min(32, 7 + Math.round(area * 0.0008))}px`}else if(point.node.level===2&&Number.isFinite(point.value)&&point.node.children.length>0){let totalPerf=point.node.children.reduce((acc,child)=>acc+(child.point.value*child.point.colorValue),0),totalWeight=point.node.children.reduce((acc,child)=>acc+child.point.value,0),perf=totalPerf/totalWeight 304point.custom.performance=perf 305if(point.dlOptions){point.dlOptions.backgroundColor=this.colorAxis.toColor(perf)}}});}});$(()=>{$(".js-heatmapFullscreen").on('click',(e)=>{let idChart=$(e.currentTarget).data('fullscreen');$("#"+idChart).highcharts().fullscreen.toggle()})});function deepClone(obj){if(obj===null||typeof obj!=='object'){return obj;} 306if(Array.isArray(obj)){return obj.map(deepClone);} 307const clone={};for(const key in obj){if(obj.hasOwnProperty(key)){clone[key]=deepClone(obj[key]);}} 308return clone;} 309Highcharts.setOptions({lang:{months:['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],weekdays:['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'],loading:"Chargement",shortMonths:['Janv.','Févr.','Mars','Avr.','Mai','Juin','Juill.','Août','Sept.','Oct.','Nov.','Déc.'],thousandsSep:' ',decimalPoint:',',downloadPNG:"Télécharger l'image en PNG",downloadJPEG:"Télécharger l'image en JPEG",downloadPDF:"Télécharger l'image en PDF",downloadSVG:"Télécharger l'image en Vectoriel",exportButtonTitle:'Exporter Graphique',printChart:'Imprimer le graphique',resetZoom:'Réinitialiser le zoom',resetZoomTitle:'Réinitialiser le zoom au niveau 1:1',rangeSelectorFrom:"Du",rangeSelectorTo:"Au",viewFullscreen:"Plein écran",base100:"Graphique en Base 100",numericSymbols:['k.','M.','Md.','Bn.','Bd.','Tn.']},credits:{enabled:true,text:'© Zonebourse.com',href:'#',style:{fontSize:'12px',cursor:'default'}},chart:{style:{fontFamily:"Arial, Helvetica"}},exporting:{enabled:false},rangeSelector:{inputDateFormat:"%d/%m/%Y"},xAxis:{dateTimeLabelFormats:{day:"%e %b",week:"%e %b",month:"%b %y"}}});const button_5D={type:'day',count:5,text:'5j',title:'5 jours'},button_1M={type:'month',count:1,text:'1m',title:'1 mois'},button_2M={type:'month',count:2,text:'2m',title:'2 mois'},button_3M={type:'month',count:3,text:'3m',title:'3 mois'},button_6M={type:'month',count:6,text:'6m',title:'6 mois'},button_9M={type:'month',count:9,text:'9m',title:'9 mois'},button_YTD={type:'ytd',text:'01/01',title:'Depuis le 1er janvier'},button_1Y={type:'year',count:1,text:'1an',title:'1 an'},button_2Y={type:'year',count:2,text:'2ans',title:'2 ans'},button_3Y={type:'year',count:3,text:'3ans',title:'3 ans'},button_5Y={type:'year',count:5,text:'5ans',title:'5 ans'},button_10Y={type:'year',count:10,text:'10ans',title:'10 ans'},button_15Y={type:'year',count:15,text:'15ans',title:'15 ans'},button_ALL={type:'all',text:'Max',title:'Maximum'},dateFormatDay="%A %e %B %Y",dateFormatWeek='Semaine du %A %e %B %Y',tooltipValueFormatOHLC='<tr><td style="padding:0;font-size:12px" colspan="2"><b>{series.name}</b>: <ul style="margin: 3px 0px; padding-left: 15px;list-style-type: none;"><li>Ouverture : <b>{point.open:,.%toReplace%f}</b></li><li>Plus Haut : <b>{point.high:,.%toReplace%f}</b></li><li>Plus Bas : <b>{point.low:,.%toReplace%f}</b></li><li>Fermeture : <b>{point.close:,.%toReplace%f}</b></li></ul></td></tr>',tradsTM={"Variation":"Performance","Valorisation":"Valorisation","perf_spread":"Spread","Date":"Date",'pl_values':"+/- Values"},heatmapWording={"Back":"Retour","Size":"Taille","Change":"Variation","Weight":"Poids","FreeFloat":"Capitalisation flottante","All":"Tout"},nameRelativeStrength="Ratio Force relative",loadingCurveChart="Choisir un taux à comparer",curveChartUnits="pb",perfSeriesName="Performance",adjustedPerfSeriesName="Performance Total Return";startConfigHighcharts();if(typeof URL_SERVEUR=="undefined") 310var URL_SERVEUR="/charting/";String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1).toLowerCase();} 311var mouseDown=0;const aMainStyle={backgroundColor:GLOBAL_COLOR_SCHEME==="dark"?"#121212":"#fff",spacingBottom:20,spacingLeft:0,spacingRight:0,legendAlign:"right",legendMargin:8,symbolHeight:8,fontSize1:"12px",fontSize2:"10px",xAxisBottomLineColor:GLOBAL_COLOR_SCHEME==="light"?"black":"white",xAxisBottomLineWidth:2,xAxisBottomTickWidth:0,xAxisgridLineDashStyle:'Dot',xAxisgridLineWidth:1,xAxisgridLineColor:GLOBAL_COLOR_SCHEME==="light"?'#A5A5A5':"#fff",xAxisLabelColor:GLOBAL_COLOR_SCHEME==="light"?"black":"white",xAxisLabelWeight:"bold",xAxisTopTickWidth:0,xAxisTopLineColor:GLOBAL_COLOR_SCHEME==="light"?"black":"white",xAxisTopLineWidth:0,yAxisLabelColor:GLOBAL_COLOR_SCHEME==="light"?"#818181":"white",yAxisgridLineDashStyle:'Dot',yAxisgridLineWidth:1,yAxisgridLineColor:GLOBAL_COLOR_SCHEME==="light"?"#A5A5A5":"white",yAxisLeftLineColor:GLOBAL_COLOR_SCHEME==="light"?"black":"white",yAxisLeftLineWidth:2,yAxisLeftTickWidth:0,yAxisRightLineColor:GLOBAL_COLOR_SCHEME==="light"?"black":"white",yAxisRightLineWidth:0,yAxisRightTickWidth:0};$(function(){document.body.onmousedown=function(){mouseDown=1;} 312document.body.onmouseup=function(){mouseDown=0;}});Highcharts.setOptions({global:{useUTC:true},plotOptions:{bar:{borderRadius:1},column:{borderRadius:1},series:{states:{inactive:{enabled:false}}}},tooltip:{backgroundColor:"white",borderWidth:0,borderRadius:5,style:{color:null}}});var rangeSelectorButtonsLong,rangeSelectorButtonsHomeInstrument,rangeSelectorButtonsAgenda,rangeSelectorButtonsSmall,configSelectorSmall,configSelectorLong,configSelectorAgenda,configSelectorGraphComp,configSelectorMini,tooltipValueFormatEOD,rangeSelectorButtons2Y,fullscreenButton;function startConfigHighcharts(){button_YTD.events={click:function(e){let chart=$(e.currentTarget.closest(".chart")).highcharts(),now=new Date(),timeEnd=now.getTime();now.setMonth(0);now.setDate(1);
312now.setHours(8);now.setMinutes(0);now.setSeconds(0);let timeStart=now.getTime();chart.xAxis[0].setExtremes(timeStart,timeEnd);return false;}};rangeSelectorButtonsLong=[button_2M,button_3M,button_6M,button_9M,button_YTD,button_1Y,button_2Y,button_5Y,button_ALL];rangeSelectorButtons2Y=[button_2M,button_3M,button_6M,button_9M,button_YTD,button_1Y,button_2Y];rangeSelectorButtonsAgenda=[button_1M,button_3M,button_YTD,button_1Y,button_2Y,button_3Y,button_5Y];rangeSelectorButtonsSmall=[button_1M,button_3M,button_6M,button_YTD,button_1Y,button_3Y,button_5Y,button_ALL];rangeSelectorButtonsHomeInstrument=[button_5D,button_1M,button_3M,button_6M,button_YTD,button_1Y];configSelectorSmall={buttons:rangeSelectorButtonsSmall,buttonTheme:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{color:"#004eff"},paddingLeft:5,paddingRight:5,states:{select:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{"text-decoration":"none",color:"black"},}}},labelStyle:{color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"}};configSelectorLong={buttons:rangeSelectorButtonsLong,buttonTheme:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{color:"#004eff"},states:{select:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{"text-decoration":"none",color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"},}}},labelStyle:{color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"}};configSelectorAgenda={buttonPosition:{x:0},inputPosition:{x:40,},x:0,y:0,buttons:rangeSelectorButtonsAgenda,buttonTheme:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{color:"#004eff"},states:{select:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{"text-decoration":"none",color:GLOBAL_COLOR_SCHEME==="light"?"black":"white",fontWeight:"normal"},}}},labelStyle:{color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"}};configSelectorGraphComp={buttons:rangeSelectorButtonsHomeInstrument,buttonTheme:{fill:"#3A3A3A",style:{color:"white"},states:{hover:{style:{color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"}},select:{fill:"#565656",style:{color:"white",fontWeight:"bold","text-decoration":"none"},}}},inputStyle:{color:'#3081E0'},labelStyle:{color:"white"}};configSelectorMini={inputEnabled:false,enabled:true,buttons:rangeSelectorButtonsSmall,buttonTheme:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{color:"#004eff"},states:{select:{fill:GLOBAL_COLOR_SCHEME==="light"?"#FFFFFF":"#000",style:{"text-decoration":"none",color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"},}}},labelStyle:{color:GLOBAL_COLOR_SCHEME==="light"?"black":"white"}};tooltipValueFormatEOD='<tr><td style="padding:0;font-size:12px">{series.name}: </td><td style="padding:0;font-size:12px; text-align : right;"><b>{point.y:,.%toReplace%f}</b></td></tr>';fullscreenButton={onclick:function(){this.fullscreen.toggle();},enabled:!iOS(),symbol:'url(/static/images/icons/fullscreen.svg)',symbolSize:15,symbolX:20,symbolY:19,titleKey:"viewFullscreen",y:-2};} 313$(()=>{const BREAKPOINTS={"x-small":576,"small":768,"medium":992,"large":1260,"x-large":1400,"xx-large":1599};$(window).on('resize',checkBreakpoints);checkBreakpoints();function checkBreakpoints(){let breakpoint=null;let breakpoints=[];let reverseBreakpoints=[];let ww=window.innerWidth 314Object.keys(BREAKPOINTS).forEach(key=>{if(BREAKPOINTS[key]>ww&&!breakpoint){breakpoint=key;reverseBreakpoints.push(key);}else if(BREAKPOINTS[key]<ww){breakpoints.push(key);}else{reverseBreakpoints.push(key)}}) 315reverseBreakpoints.forEach((point)=>{$(`.js-responsive-move[data-move-type='${point}']`).each((i,e)=>{let $e=$(e);$e.detach().appendTo($(`#${$e.data('moveId')}`));})}) 316breakpoints.forEach((point)=>{$(`.js-responsive-move[data-move-type='${point}']`).each((i,e)=>{let $e=$(e);if($e.parent().data('moveId')!==$e.data('moveId')){$e.detach().appendTo($(`.js-responsive-move-container[data-move-id="${$e.data('moveId')}"]`));}})})}}) 317var _0x449c95=_0x5153;(function(_0x25f293,_0x41994d){var _0x11dea3=_0x5153,_0x12e4b8=_0x25f293();while(!![]){try{var _0x10d813=-parseInt(_0x11dea3(0x1f7))/0x1*(-parseInt(_0x11dea3(0x1f3))/0x2)+parseInt(_0x11dea3(0x1f2))/0x3+-parseInt(_0x11dea3(0x1ec))
317/0x4+parseInt(_0x11dea3(0x1ff))/0x5+parseInt(_0x11dea3(0x1f1))/0x6+parseInt(_0x11dea3(0x204))/0x7+parseInt(_0x11dea3(0x202))/0x8*(-parseInt(_0x11dea3(0x1f6))/0x9);if(_0x10d813===_0x41994d)break;else _0x12e4b8['push'](_0x12e4b8['shift']());}catch(_0x20a309){_0x12e4b8['push'](_0x12e4b8['shift']());}}}(_0x1ac0,0x7719d),$(_0x449c95(0x1fb))[_0x449c95(0x1fe)](function(_0x2a0c2d){var _0x2f39ea=_0x449c95;_0x2a0c2d[_0x2f39ea(0x1f5)]();try{link=b64DecodeUnicode(StrRot($(this)[_0x2f39ea(0x203)](_0x2f39ea(0x1ee)),-0x2a)),target=$(this)[_0x2f39ea(0x203)](_0x2f39ea(0x1fd)),window[_0x2f39ea(0x1fa)](link,'_'+(target==undefined?_0x2f39ea(0x1ed):target));}catch(_0x439084){}}));function StrRot(_0x573cb7,_0x1a232b=0xd){var _0x20eea3=_0x449c95;const _0x4b7101=_0x20eea3(0x200),_0x2361f6=Math[_0x20eea3(0x1f9)](_0x1a232b)%0x41;if(!_0x2361f6)return _0x573cb7;const _0x53a04a=_0x4b7101[_0x20eea3(0x1f0)](_0x2361f6)+_0x4b7101[_0x20eea3(0x1f0)](0x0,_0x2361f6);return _0x1a232b<0x0?strtr(_0x573cb7,_0x53a04a,_0x4b7101):strtr(_0x573cb7,_0x4b7101,_0x53a04a);}function strtr(_0x5e96af,_0x136586,_0x1d8d4d){var _0x17c1e8=_0x449c95;if(!_0x5e96af||!_0x136586||!_0x1d8d4d)return _0x5e96af;var _0x4c48eb={};for(var _0x1387b0=0x0;_0x1387b0<_0x136586[_0x17c1e8(0x1eb)];_0x1387b0++){_0x4c48eb[_0x136586[_0x1387b0]]=_0x1d8d4d[_0x1387b0]||'';}var _0x4f04f6='';for(var _0x1387b0=0x0;_0x1387b0<_0x5e96af[_0x17c1e8(0x1eb)];_0x1387b0++){var _0x415908=_0x5e96af[_0x17c1e8(0x1f8)](_0x1387b0);_0x4f04f6+=_0x4c48eb[_0x415908]||_0x415908;}return _0x4f04f6;}function _0x5153(_0x15a01d,_0x4543a1){var _0x1ac0a5=_0x1ac0();return _0x5153=function(_0x515380,_0x1ae780){_0x515380=_0x515380-0x1eb;var _0x4ebf1d=_0x1ac0a5[_0x515380];return _0x4ebf1d;},_0x5153(_0x15a01d,_0x4543a1);}function _0x1ac0(){var _0x1ce9ed=['4702971zMokHR','length','2297436WpCUiH','top','data-lobf','toString','slice','5080704EIidzf','1953720lbmqtw','2BMTBXC','charCodeAt','preventDefault','11601YjvLta','860367RfedlJ','charAt','abs','open','.js-l-obf','prototype','data-tobf','click','1161375jBlsSp','AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789+/=','join','13656Swvvzt','attr'];_0x1ac0=function(){return _0x1ce9ed;};return _0x1ac0();}function b64DecodeUnicode(_0x57fbaa){var _0x8e0848=_0x449c95;return decodeURIComponent(Array[_0x8e0848(0x1fc)]['map']['call'](atob(_0x57fbaa),function(_0x364d06){var _0x43c0f2=_0x8e0848;return'%'+('00'+_0x364d06[_0x43c0f2(0x1f4)](0x0)[_0x43c0f2(0x1ef)](0x10))['slice'](-0x2);})[_0x8e0848(0x201)](''));} 318var aViewableAds=[];var bStartedAdsService=false;function displayViewableAds(provider) 319{var docViewTop=$(window).scrollTop();var docViewBottom=docViewTop+$(window).height();for(i=0;aAdsList.length>i;i++) 320{if(aAdsList[i]=="") 321continue;if(jQuery.inArray(aAdsList[i],aViewableAds)!=-1){continue;} 322var elemTop=$("#zpp"+aAdsList[i]).offset().top;if((elemTop<=docViewBottom)){aViewableAds.push(aAdsList[i]);if(typeof country_location!=='undefined'&&(aAdsListCA[i]===null||aAdsListCA[i].includes(country_location))){if(provider=="yieldlove"){YLHH.bidder.startAuction(["/4093671/_"+aAdsList[i]+"_/yieldlove_"+aAdsList[i]]);} 323else if(provider=="internal"){try{googletag.pubads().getSlots().forEac
323h(function(slot){if(slot.getSlotElementId()=="zpp"+aAdsList[i]){googletag.pubads().refresh([slot],{changeCorrelator:false});}})}catch(error){console.error(error)}} 324else if(provider=="InvestingChannel"&&typeof ICConf==='object'&&typeof ICConf[aAdsList[i]]==='object'){InvestingChannelQueue.push(function(){aICTags[aAdsList[i]].render();});try{gaEvent('adspv',provider+"__"+aAdsList[i],country_location);}catch(e){}} 325console.log("push "+provider+"_"+aAdsList[i]);} 326else 327console.log("Skip "+aAdsList[i]);}}} 328function startAdsService(){if(bStartedAdsService===true) 329return;console.log('startAdsService');bStartedAdsService=true;if(typeof startAdsServiceD==="function"){startAdsServiceD();}} 330const sleep=ms=>new Promise(r=>setTimeout(r,ms));const SS_LAZY_LOADED=[];let SOCKET_STREAMING_INSTANCE;class SocketStreaming{constructor(base_url,authentication,events){this.loaded=false;this.NbLn=0;SOCKET_STREAMING_INSTANCE=this;this.socket=io(base_url,{reconnection:false,transports:['websocket'],secure:true,forceNew:true}) 331return this.initialize(authentication,events);} 332async subs(events){if(!events)return;let attempts=0;while(!this.loaded&&attempts<10){await sleep(2000);attempts++;} 333if(this.loaded){this.emitEvents(events);}} 334event_TTM_QUOTES(data){this._update__lasts(data.id,data.P);this._update__variations(data.id,data.P,data.T);this._update_datetime(data.id,data.T);} 335event_news(data){if(data.myElement){this.NbLn++;var myTab=document.getElementById('ZBL'+data.myElement);myTab.deleteRow(myTab.rows.length-1);var myRow=myTab.insertRow(0);var myCell=myRow.insertCell(0);myCell.innerHTML=data.sMessage;myRow.id='selem'+this.NbLn;highlight('selem'+this.NbLn);}} 336event_MULTIDEVICE(data){debug('socket-streaming.js : multidevice detected');$(document).trigger('multidevice_detected',[data]);} 337event_QUOTES(data){this._update__lasts(data.id,data.C);this._update__variations(data.id,data.C,data.DC);$(`*[data-id="${data.id}"][data-field="change_value"]`).each((i,e)=>{let value=parseFloat(parseFloat(data.C)-$(e).data('base-v')).toFixed($(e).data('round'));let valueOld=parseFloat($(e).text().replace(/\u202F/g,'').replace(',','.'));trigger_update(e,valueOld,value);if(value>=0)value="+"+value;$(e).text(value);if($(e).data('date')===true){$(e).attr('title',new Date(parseFloat(data.DC)*1000).format($(e).data('format'),GLOBAL_TIMEZONE));}}) 338this._update_datetime(data.id,data.DC);} 339event_CRYPTOQUOTES(data){this._update__lasts(data.id,data.P);this._update__variations(data.id,data.P,data.T);this._update_datetime(data.id,data.T);} 340event_QUOTES_ALTERNATIVES(data){let iSpread=(data.A-data.B)/data.B;if(Math.abs(iSpread)<0.05){data.C=parseFloat((parseFloat(data.A)+parseFloat(data.B))/2) 341this._update__lasts(data.id,data.C);this._update__variations(data.id,data.C,data.DA);} 342this._update_datetime(data.id,data.DA);} 343formatNumber(number,round){return parseFloat(number).toFixed(round??2);} 344triggerAndUpdateText($element,oldValue,newValue){trigger_update($element.get(0),oldValue,newValue);$element.text(formatFloat(newValue,$element.data('round')));} 345_update__lasts(id,last){const $elements=$(`*[data-id="${id}"][data-field="last"]`);const round=$elements.data('round')||2;const value=this.formatNumber(last,round);$elements.each((i,e)=>{const $e=$(e);let valueOld=parseFloat($e.text().replace(/\u202F/g,'').replace(',','.'));this.triggerAndUpdateText($e,valueOld,value);});} 346_update__variations(id,last,ts){const $elements=$(`*[data-id="${id}"][data-field="change_pct"]`);$elements.each((i,e)=>{const $e=$(e);const baseValue=$e.data('base-v');const round=$e.data('round')||2;let value=this.formatNumber(((parseFloat(last)-baseValue)/baseValue)*100,round);let valueOld=parseFloat($e.text().replace(/\u202F/g,'').replace(',','.'));let sign=value>0?"+":"";let suffix=['fr','de','es'].includes(GLOBAL_LANG)?'\u00A0%':'%';trigger_update(e,valueOld,value);$e.text(sign+formatFloat(value,round)+suffix);if($e.data('date')){$e.attr('title',new Date(parseFloat(ts)*1000).format($e.data('format'),GLOBAL_TIMEZONE));}});} 347_update_datetime(id,ts){const $elements=$(`*[data-id="${id}"][data-field="datetime"]`);const date=new Date(parseFloat(ts)*1000);$elements.each((i,e)=>{const $e=$(e);let format=$e.data('format');$e.text(date.format(format,GLOBAL_TIMEZONE));});}
348scroll_lazy_loading(){SS_LAZY_LOADED.forEach((lazyLoaded)=>{if($(lazyLoaded.element).isInViewport()){SOCKET_STREAMING_INSTANCE.socket.emit(lazyLoaded.event.event,{id:lazyLoaded.event.id});let index=SS_LAZY_LOADED.indexOf(lazyLoaded);SS_LAZY_LOADED.splice(index,1);}})} 349setupSocketListeners(events){this.socket.on('ready',()=>{});this.socket.on('auth_confirm',()=>{this.loaded=true;this.emitEvents(events);});this.socket.on('event',(type,data)=>{const eventHandlers={"TTM_QUOTES":this.event_TTM_QUOTES,"QUOTES":this.event_QUOTES,"TRADING_ECONOMICS":this.event_QUOTES,"CRYPTO_QUOTES":this.event_CRYPTOQUOTES,"MSCI_QUOTES":this.event_TTM_QUOTES,"NEWS":this.event_news,"MULTIDEVICE":this.event_MULTIDEVICE};if(type==='QUOTES'&&data.A&&data.B){return this.event_QUOTES_ALTERNATIVES(data);} 350const handler=eventHandlers[type];if(handler){handler.call(this,data);}});} 351emitEvents(events){events.forEach(event=>{if(event.event==="news"){this.socket.emit(event.event,{myElement:event.myElement});}else{this.emitEvent(event);}});$(document).trigger('socket_streaming_ready');} 352emitEvent(event){const elements=$(`*[data-id="${event.id}"]`);elements.each((_,element)=>{if($(element).isInViewport()){this.socket.emit(event.event,{id:event.id});}else{$(element).text($(element).text());SS_LAZY_LOADED.push({element,event});}});} 353initializeUIListeners(){let debounceTimer;$(window).on("resize scroll touchmove",()=>{clearTimeout(debounceTimer);debounceTimer=setTimeout(()=>{SOCKET_STREAMING_INSTANCE.scroll_lazy_loading();},200);});} 354async initialize(authentication,events){await this.setupSocketListeners(events);this.initializeUIListeners();return new Promise((resolve,reject)=>{this.socket.on('connect',()=>{this.socket.emit('auth',authentication);});this.socket.on('auth_confirm',()=>{this.loaded=true;resolve(this);});this.socket.on('connect_error',(error)=>{reject(error);});});}} 355var dateFormat=function(){var token=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTtYia])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,pad=function(val,len){val=String(val);len=len||2;while(val.length<len)val="0"+val;return val;};return function(date,mask,tz){var dF=dateFormat;if(arguments.length===1&&Object.prototype.toString.call(date)==="[object String]"&&!/\d/.test(date)){mask=date;date=undefined;} 356date=date?new Date(date):new Date;if(isNaN(date)){throw SyntaxError("invalid date");} 357if(tz&&isTimeZoneSupported()){let dateString=date.toLocaleString('en-US',{timeZone:GLOBAL_TIMEZONE}) 358date=new Date(dateString);} 359mask=String(dF.masks[mask]||mask||dF.masks["default"]);var _="get",d=date[_+"Date"](),D=date[_+"Day"](),m=date[_+"Month"](),M=date[_+"Month"](),y=date[_+"FullYear"](),H=date[_+"Hours"](),I=date[_+"Minutes"](),s=date[_+"Seconds"](),L=date[_+"Milliseconds"](),o=date.getTimezoneOffset(),flags={d:pad(d),dd:pad(d),ddd:dF.i18n.dayNames[D],dddd:dF.i18n.dayNames[D+7],mm:m+1,m:pad(m+1),mmm:dF.i18n.monthNames[m],mmmm:dF.i18n.monthNames[m+12],yy:String(y).slice(2),Y:y,h:H<12?pad(H):pad(H-12),hh:pad(H%12||12),H:pad(H),HH:pad(H),M:M,i:pad(I),s:pad(s),ss:pad(s),l:pad(L,3),L:pad(L>99?Math.round(L/10):L),a:H<12?"am":"pm",tt:H<12?"am":"pm",T:tz?(new Date().toLocaleString("en-US",{timeZone:tz,timeZoneName:'short'}).split(' ')[3]):'',TT:H<12?"AM":"PM",Z:date.getTimezoneOffset(),o:(o>0?"-":"+")+pad(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10]};return mask.replace(token,function($0){return $0 in flags?flags[$0]:$0.slice(1,$0.length-1);});};}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(mask,tz){return dateFormat(this,mask,tz);};
359function isTimeZoneSupported(){try{new Date().toLocaleString('en-US',{timeZone:'America/New_York'});return true;}catch(e){return false;}} 360$(()=>{let adDisplayContainer;let adsLoader;let adsManager;let isMuted=1;function startOutstreamAd(){const adContainerElement=document.getElementById('stickyAdVideo');adDisplayContainer=new google.ima.AdDisplayContainer(adContainerElement);adDisplayContainer.initialize();adsLoader=new google.ima.AdsLoader(adDisplayContainer);adsLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,onAdsManagerLoaded,false);adsLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,onAdError,false);const adsRequest=new google.ima.AdsRequest();adsRequest.adTagUrl="https://pubads.g.doubleclick.net/gampad/ads?iu=/4093671/Video_Sticky&description_url=https%3A%2F%2Fwww.zonebourse.com&tfcd=0&npa=0&sz=400x225%7C400x225&cust_params=Edition%3D"+GLOBAL_LOCALE+"&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&vpmute=0&vpa=click";adsRequest.linearAdSlotWidth=400;adsRequest.linearAdSlotHeight=225;adsRequest.nonLinearAdSlotWidth=400;adsRequest.nonLinearAdSlotHeight=225;adsLoader.requestAds(adsRequest);} 361function onAdsManagerLoaded(adsManagerLoadedEvent){$('#stickyAdContainer').css({'position':'fixed','z-index':'9999','display':'block','width':'400px','height':'225px','right':'20px','bottom':'20px'});adsManager=adsManagerLoadedEvent.getAdsManager(null);adsManager.init(400,225,google.ima.ViewMode.NORMAL);adsManager.setVolume(0);adsManager.start();adsManager.addEventListener(google.ima.AdEvent.Type.ALL_ADS_COMPLETED,onAdEnd,false);$('#stickyAdMuteBtn').off('click').on('click',function(){if(!adsManager)return;isMuted=!isMuted;adsManager.setVolume(isMuted?0:1);$('#stickyAdMuteBtn').text(isMuted?'ð':'ð');});} 362function onAdError(adErrorEvent){console.warn('VideoAds error :',adErrorEvent.getError());$('#stickyAdContainer').hide();} 363function onAdEnd(adsEndEvent){$('#stickyAdContainer').hide();} 364startOutstreamAd();});function DateRelative(){};DateRelative.prototype.m_prefix=" min" 365DateRelative.prototype.h_prefix="h" 366DateRelative.prototype.refresh=function(){alert('refresh called');} 367var dtrlands={"fr":{"prefix":"","suffix":"","m":" min","mm":" min","h":"h","hh":"h","light_m":" m","light_h":" h",},"en":{"prefix":"","suffix":"","m":" min","mm":" min","h":"h","hh":"h","light_m":" m","light_h":" h",},"it":{"prefix":"","suffix":"","m":" min","mm":" min","h":" ora","hh":" ore","light_m":" m","light_h":" h",},"es":{"prefix":"","suffix":"","m":" min","mm":" min","h":" hora","hh":" horas","light_m":" m","light_h":" h",},"de":{"prefix":"","suffix":"","m":" Min","mm":" Min","h":" Std","hh":" Std","light_m":" m","light_h":" h",},"nl":{"prefix":"","suffix":"","s":"s","ss":"s","m":" Min","mm":" Min","h":" Uur","hh":" Uur","light_m":" m","light_h":" h",},"sv":{"prefix":"","suffix":"","m":" min","mm":" min","h":" tim","hh":" tim","light_m":" m","light_h":" h",}} 368$(()=>{initDateRelative();setInterval(()=>{initDateRelative();},60000)}) 369function initDateRelative(){let midnight=new Date();midnight.setHours(0,0,0,0);let midnightTime=midnight.getTime();$(".js-date-relative").each((i,e)=>{let $e=$(e);let a=Date.parse($e.data('utc-date'));let b=(new Date()).getTime();let seconds=((b-a)/1000).toFixed(0);let isVeryLight=$e.data('veryLight');let value=0;let displayType="";if(a<midnightTime){return;}else if(Math.floor(seconds/60/60)>0){value=(Math.floor(seconds/60/60));if(isVeryLight){displayType='light_h';}else{displayType=(value>1?'hh':'h');}}else if(Math.floor(seconds/60)>0){value=Math.floor((seconds/60));if(isVeryLight){displayType='light_m';}else{displayType=(value>1?'mm':'m');}}else if(Math.floor(seconds)>0){value=(Math.floor(seconds));if(isVeryLight){displayType='light_m';}else{displayType=(value>1?'mm':'m');} 370$e.text("<1"+dtrlands[GLOBAL_LANG][displayType]) 371return;}else{return;} 372$e.text(dtrlands[GLOBAL_LANG]['prefix']+value+dtrlands[GLOBAL_LANG][displayType]+dtrlands[GLOBAL_LANG]['suffix']);})} 373function changeVdsParams(idContainer) 374{let container=$("#"+idContainer),lvl=$("#"+idContainer+"_lvl").val(),region=$("#"+idContainer+"_region").val(),varia=$("#"+idContainer+"_varia").val();container.addClass("content-loading");call('vd/getVD',{lvl:lvl,region:region,varia:varia},'POST','getVD').then(function(data) 375{let aDivs=container.children();$.each(aDivs,function(index,div){$(div).empty();$(div).html(data.data[index]);});}).catch(function(myError) 376{console.log("Exception : ");console.log(myError);}).finally(function() 377{container.removeClass("content-loading");});} 378$(()=>{let ZB_IMG_GRPH="https://cdn.zonebourse.com/zbcache/charts/ObjectChart.aspx?Name={codezb}&Company=Skin:ZonebourseLight&Type=Custom&Intraday=1&Width=350&Height=250&Cycle={cycle}&Duration={duration}&Render={render}&ShowCopyright=0&ShowVolume=0&ShowName=1&Locale={locale}";let ZB_HTML_GRPH=`<div id="displayed-graph" class="card card--shadowed p-5" style="z-index:10000;position:fixed;top:{y}px;left:{x}px;"><img src="{img}" height="250" width="350"/></div>`;$(document).on('mouseenter touchstart','.js-graph',(e)=>{let displayGraph=$("#displayed-graph");if(!displayGraph){e.stopPropagation();e.preventDefault();}else{displayGraph.remove();} 379let c=$(e.currentTarget),codezb=c.data('code'),locale=c.data('locale'),type=c.data('type'),duration=Math.floor((350/(80+([101,102,105].includes(type)?20:4)))).toString(),render=type===103?"Line&Scale=Lin":"Candle";let url=ZB_IMG_GRPH.replace('{codezb}',codezb).replace('{locale}',locale).replace('{duration}',duration).replace('{render}',render).replace("{cycle}",c.data('cycle'));if(c.data('externLoad')){let customLoad=c.data('externLoad');url+="&externload=CUSTOM;"+customLoad;} 380let body=$("body");let html=ZB_HTML_GRPH.replace('{img}',url).replace('{x}',(e.pageX)).replace('{y}',(e.pageY-$(document).scrollTop()));body.append(html);body.find("#displayed-graph").get(0).offsetWidth;}) 381$(document).on('mouseleave touchend','.js-graph',(e)=>{if(e.relatedTarget&&e.relatedTarget.id==="displayed-graph")return;$("#displayed-graph").remove();}) 382$(document).on('mouseleave touchend','#displayed-graph',(e)=>{$("#displayed-graph").remove();});}) 383$(()=>{$(".js-cardScrollButton").click((e)=>{let $e=$(e.currentTarget),$card=$("#"+$e.data('card')),direction=$e.data('direction'),$toAnimate=$card.find('.card-container-responsive--all, .card-container-responsive--s');$toAnimate.animate({scrollLeft:$toAnimate.scrollLeft()+(direction==='right'?300:-300)},100);})});$(()=>{$(".js-card-horizontal-scroll").on('wheel',function(e){if((this.scrollLeft<=0&&e.originalEvent.deltaY<0)||(this.scrollLeft+this.offsetWidth>=this.scrollWidth&&e.originalEvent.deltaY>0)){return;} 384e.preventDefault();this.scrollLeft+=e.originalEvent.deltaY;});});function drawPortfolioPerfChart(params) 385{configSelectorSmall.buttonPosition={align:'right'} 386configSelectorSmall.inputEnabled=false;configSelectorSmall.buttons=[button_1M,button_3M,button_6M,button_YTD,button_1Y,button_3Y,button_5Y,button_10Y,button_15Y,button_ALL];configSelectorSmall.selected='all';Highcharts.setOptions({lang:{rangeSelectorZoom:''}}) 387let options={chart:{pinchType:"",renderTo:params.inDiv,spacingTop:0,spacingBottom:0,type:"line"}
387,credits:{enabled:false},legend:{enabled:true},navigator:{enabled:false,},plotOptions:{series:{compare:"percent",dataGrouping:{dateTimeLabelFormats:{day:[dateFormatDay]},forced:true,units:[['day',[1]]]},lineWidth:2,states:{hover:{lineWidth:2,lineWidthPlus:0}}}},rangeSelector:configSelectorSmall,responsive:{rules:[{chartOptions:{rangeSelector:{buttonTheme:{style:{fontSize:"14px"}}}},condition:{maxWidth:500},}]},scrollbar:{enabled:false},title:{text:null},tooltip:{followPointer:false,footerFormat:'</div>',headerFormat:'<div style="font-size:12px; min-width:150px;"><span style="line-height: 20px;">{point.key}</span><br>',pointFormat:'▪ <b><span style="color:{point.series.color}">{point.series.name}</span></b> : {point.change}%<br>',shared:true,split:false,useHTML:true},xAxis:[{alternateGridColor:"#ffffff",events:{afterSetExtremes:function(e){if(e.target.chart.get("benchmark")){if(typeof delayedCalculation!=='undefined'){window.clearTimeout(delayedCalculation);} 388delayedCalculation=window.setTimeout(function(){let spreadData=getSpreadData(e.target.chart.renderTo.id);e.target.chart.get("spread").setData(spreadData);},1000);}}},gridLineWidth:0,labels:{style:{color:"#000000"},y:25},lineColor:'#707982',ordinal:false,tickColor:"#707982",tickLength:10,tickWidth:1},{id:"spreadSeparator",labels:{enabled:false},lineColor:'black',lineWidth:2,linkedTo:0,opposite:true,tickLength:0,title:null,top:"70%",visible:false}],yAxis:[{endOnTick:false,gridLineColor:'#eee',id:"perfAxis",labels:{format:'{value}%',style:{color:"#000000"},y:4},maxPadding:0.1,offset:0,opposite:false,showFirstLabel:true,showLastLabel:true,startOnTick:false,title:null},{endOnTick:false,gridLineColor:'#eee',height:"30%",id:"spreadAxis",labels:{format:'{value}%',style:{color:"#000000"},y:4},maxPadding:0.1,offset:0,opposite:false,showEmpty:false,showFirstLabel:true,showLastLabel:true,startOnTick:false,title:null,top:"70%"}]};chart=new Highcharts.StockChart(options);chart.showLoading();$("#config-"+params.portfolioType).click();} 389function changePortfolioConfig(idDiv,id_portefeuille,nom_portefeuille,codezb_benchmark,nom_benchmark,element) 390{if(element){$(".pButton").removeClass('item--active').addClass('txt-link');$(element).addClass('item--active').removeClass('txt-link');} 391let chart=$("#"+idDiv).highcharts();chart.showLoading();$("#"+idDiv).addClass('chart--loading');api('stateful/portfolioComparison',{portfolio:id_portefeuille,benchmark:codezb_benchmark},'GET').then(function(data) 392{if(!data["error"]) 393{if(chart.get("portif")) 394chart.get("portif").remove();if(chart.get("indice1")) 395chart.get("indice1").remove();var dataChart=data["data"];chart.addSeries({name:nom_portefeuille,id:"portif",compare:"percent",lineColor:'#004eff',color:'#004eff',lineWidth:2,data:dataChart[0],});if(dataChart[1]&&dataChart[1].length>0){chart.addSeries({name:nom_benchmark,id:'indice1',compare:"percent",lineColor:'black',lineWidth:2,color:'black',data:dataChart[1]});} 396chart.xAxis[0].setExtremes(dataChart[0][0][0]) 397chart.rangeSelector.clickButton(configSelectorSmall.buttons.length-1)}}).catch(function(myError) 398{console.log("Exception : ");console.log(myError);}).then(function() 399{chart.hideLoading();$("#"+idDiv).removeClass('chart--loading');});} 400function changePortfolioDuration(select,idChart) 401{let renderingDiv=$("#"+idChart),chart=renderingDiv.highcharts(),options=JSON.parse(select.value);chart.xAxis[0].setExtremes(options[0],options[1]);} 402function changeBenchmark(select,idChart) 403{let renderingDiv=$("#"+idChart),chart=renderingDiv.highcharts(),codezb=select.value,start=$("#startTime").val();if(!codezb){if(chart.get("benchmark")){chart.get("benchmark").remove();} 404if(chart.get("spread")){chart.get("spread").remove();} 405chart.get("perfAxis").update({height:"100%"});chart.get("spreadSeparator").update({visible:false});return;} 406chart.showLoading();renderingDiv.addClass('chart--loading');$("#selectPeriodPerf").attr("disabled",true);$("#selectBenchmark").attr("disabled",true);getQuoteHistory([codezb],start,null,false).then(function(data) 407{let aData=data[0],dataSeries=[];$.each(aData["quotes"],(timestamp,aQuote)=>{dataSeries.push([timestamp*1000,aQuote["C"]]);});if(chart.get("benchmark"))
408chart.get("benchmark").setData(dataSeries);else 409chart.addSeries({custom:{currency:aData["currency"]},color:'black',data:dataSeries,id:"benchmark",legendIndex:2,name:aData["name"],yAxis:"perfAxis",zIndex:0});let spreadData=getSpreadData(idChart);if(chart.get("spread")) 410chart.get("spread").setData(spreadData);else 411chart.addSeries({color:'#008013',data:spreadData,id:"spread",legendIndex:2,name:"Spread",negativeColor:"#CC0000",negativeFillColor:"rgba(204,0,0,.5)",tooltip:{pointFormat:'▪ <b>{point.series.name}</b> : <span style="color:{point.color}">{point.y:.2f}%</span><br>'},type:"area",yAxis:"spreadAxis"});chart.get("perfAxis").update({height:"70%"});chart.get("spreadSeparator").update({visible:true});}).finally(function() 412{chart.hideLoading();renderingDiv.removeClass('chart--loading');$("#selectPeriodPerf").attr("disabled",false);$("#selectBenchmark").attr("disabled",false);})} 413function getSpreadData(idChart) 414{let renderingDiv=$("#"+idChart),chart=renderingDiv.highcharts(),bmData=chart.get("benchmark").points,bmIndex=0,spreadData=[];$.each(chart.get("portif").points,function(index,point) 415{while((bmIndex<bmData.length-1)&&(bmData[bmIndex].x<point.x)){prevData=bmData[bmIndex].change;bmIndex++;} 416if(point.x==bmData[bmIndex].x){spreadData.push([point.x,point.change-bmData[bmIndex].change]);}else if(point.x==prevData.x){spreadData.push([point.x,(point.change-prevData.change)]);}});return spreadData;} 417let oneTimedrawInstrumentsDark=false 418function drawInstrumentsDark(params) 419{let options={chart:{renderTo:params.inDiv,backgroundColor:"#212121",spacingRight:5,spacingBottom:5},colors:["#ffbdc9","#ff3000","#fff826","#16a8ec","#ff7f24","#83de37","#004eff","#fc12d3","#0a9396","#9644c5","#992e2e","#ffae00","#661df0","#005f73","#cc0000","#ffcf34","#3ae3e8","#f3dfc1","#3fd192","#33d251","#ff7f24","#15253f","#4d0000","#3a3a3a"],exporting:(params.disableRangeSelector===true?{enabled:false}:{buttons:[fullscreenButton],enabled:true}),legend:{align:"left",enabled:true,itemMarginBottom:0,itemMarginTop:0,itemStyle:{color:"#FFFFFF",fontSize:"12px"},itemHoverStyle:{color:"#FFFFFF"},verticalAlign:"top"},navigator:{enabled:false},plotOptions:{line:{compare:params.compare,marker:{enabled:false,radius:3,symbol:"circle"},lineWidth:3,states:{hover:{lineWidthPlus:0}},dataGrouping:{forced:true,units:[["day",[1]]]}}},rangeSelector:(params.disableRangeSelector===true?{enabled:false}:configSelectorGraphComp),responsive:{rules:[{chartOptions:{legend:{enabled:true,maxHeight:120}},condition:{maxWidth:550}}],},scrollbar:{enabled:false},title:{text:""},tooltip:{backgroundColor:"rgba(247,247,247,0.85)",borderWidth:1,pointFormat:'<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.y} ({point.change}%)</b><br/>',style:{fontSize:"12px"},useHTML:true,xDateFormat:dateFormatDay},xAxis:[{labels:{style:{fontSize:"12px",color:"#FFFFFF"}},lineColor:"#808080",lineWidth:1.5,tickColor:"#808080",tickLength:5,tickWidth:1.5,range:6*30*24*3600*1000}],yAxis:[{gridLineColor:"#808080",gridLineDashStyle:"Dot",gridLineWidth:1.5,type:"linear",labels:{align:"left",format:"{value}%",style:{fontSize:"12px",color:"#FFFFFF"},y:4},lineWidth:0,showLastLabel:true}]};if(true||params['disableCredits']){options.credits={enabled:false};} 420cdn('api/stateful/graph/comparison/instruments',{codezbs:params.codezbs},'GET').then((response)=>{options.series=response.data;$("#"+params.inDiv).removeClass('chart--loading');new Highcharts.StockChart(options);});} 421function trigger_update(element,value_old,value_new){const $element=$(element);if(!$element.isInViewport()){return;} 422const value_diff=value_new-value_old;if(value_diff===0){return;} 423const toTrigger="variation__update_"+(value_diff>0?"pos":"neg");const hasRs=$element.hasClass('variation__rs--neg')||$element.hasClass('variation__rs--pos')?'__rs':'';const classPos=`variation${hasRs}--pos`;const classNeg=`variation${hasRs}--neg`;const hasClassNeg=$element.hasClass(classNeg);const hasClassPos=$element.hasClass(classPos);if(hasClassNeg||hasClassPos){if(value_new>0&&(hasClassNeg||!hasClassPos)){$element.removeClass(classNeg).addClass(classPos);}else if(value_new<0&&(hasClassPos||!hasClassNeg)){$element.removeClass(classPos).addClass(classNeg);}} 424void $element.removeClass("variation__update_pos variation__update_neg")[0].offsetWidth;$element.addClass(toTrigger);} 425$(()=>{new SocketStreaming(liveHtml_BASE_URL,liveHtml_AUTH,liveHtml_TOJS).then((instance)=>{if(typeof SS_ISE_LOADED!='undefined') 426instance.subs(SS_ISE_LOADED)})}) 427$(()=>{$('#editionModal').one('modalOpen',function(){$(this).find('img[data-src]').each(function(){$(this).attr('src',$(this).data('src')).removeAttr('data-src');});});});$(()=>{gaEvent('popin','changement-edition','popin_changement-edition_basique') 428let popup=$('#editionSwitchDropdown');let container=GLOBAL_ISMOBILE?$("#header"):$('#desktopModalEdition');let containerOffset=container.offset();let containerWidth=container.width();let containerHeight=container.height();let popupWidth=popup.width();let left=containerOffset.left+containerWidth-popupWidth;popup.css({left:left,top:containerHeight+container.offset().top+(!GLOBAL_ISMOBILE?15:0)});popup.addClass('active');$(".js-editionSwitchDropdownClose, body").one('click',()=>{setCookie('editionPopupShown','true',7);popup.removeClass('active');});function setCookie(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toUTCString();} 429let domain="; domain=."+window.location.hostname;document.cookie=name+"="+(value||"")+expires+domain+"; path=/";}});$(()=>{$(document).on('click','.notification__close',(e)=>{$(e.currentTarget).parent().fadeOut(300).remove();});window.seenFlashes=window.seenFlashes||[];let flashes=$("#notifications-portal").data("flashes") 430if(flashes){for(let flash of flashes){const id=flash.uniqueIdentifier;if(id&&window.seenFlashes.includes(id)){continue;} 431Toast[flash.type](flash.title,flash.message);if(id){window.seenFlashes.push(id);}}
431}});class Toast{static Success(title,message){let template=`\n<div class="notification notification--success">\n<div class="bi- notification__icon"></div>\n<div class="notification__content">\n${title ? `<div class="notification__title">${title}</div>` : ''}\n${message ? `<div class="notification__message">${message}</div>` : ''}\n</div>\n<div class="notification__close">\n<i class="bi-x"></i>\n</div>\n</div>\n`;$(template).appendTo('#notifications-portal').fadeIn(300).delay(10000).fadeOut(300);} 432static Error(title,message){let template=`\n<div class="notification notification--error">\n<div class="bi- notification__icon"></div>\n<div class="notification__content">\n${title ? `<div class="notification__title">${title}</div>` : ''}\n${message ? `<div class="notification__message">${message}</div>` : ''}\n</div>\n<div class="notification__close">\n<i class="bi-x"></i>\n</div>\n</div>\n`;$(template).appendTo('#notifications-portal').fadeIn(300).delay(10000).fadeOut(300);} 433static Info(title,message){let template=`\n<div class="notification notification--info">\n<div class="bi- notification__icon"></div>\n<div class="notification__content">\n${title ? `<div class="notification__title">${title}</div>` : ''}\n${message ? `<div class="notification__message">${message}</div>` : ''}\n</div>\n<div class="notification__close">\n<i class="bi-x"></i>\n</div>\n</div>\n`;$(template).appendTo('#notifications-portal').fadeIn(300).delay(10000).fadeOut(300);} 434static Warning(title,message){let template=`\n<div class="notification notification--warning">\n<div class="bi- notification__icon"></div>\n<div class="notification__content">\n${title ? `<div class="notification__title">${title}</div>` : ''}\n${message ? `<div class="notification__message">${message}</div>` : ''}\n</div>\n<div class="notification__close">\n<i class="bi-x"></i>\n</div>\n</div>\n `;$(template).appendTo('#notifications-portal').fadeIn(300).delay(10000).fadeOut(300);} 435static Default(title,message){let template=`\n<div class="notification notification--default">\n<div class="bi- notification__icon"></div>\n<div class="notification__content">\n${title ? `<div class="notification__title">${title}</div>` : ''}\n${message ? `<div class="notification__message">${message}</div>` : ''}\n</div>\n<div class="notification__close">\n<i class="bi-x"></i>\n</div>\n</div>\n`;$(template).appendTo('#notifications-portal').fadeIn(300).delay(10000).fadeOut(300);}}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.