Este resumen es generado por inteligencia artificial y revisado por la redacción.
Consulta el tipo de cambio del día
‘+sanitizeHTML(modalConfig.message)+’
‘;}function closeSources(){isSourcesExiting=true;const sourcesEl=document.getElementById(‘merlin-sources-overlay’);if(sourcesEl){sourcesEl.className=CLS.sourcesOverlay+’ ‘+CLS.sourcesOverlayExiting;}setTimeout(function(){showSources=false;isSourcesExiting=false;sourcesButtonRect=null;sourcesData=[];nonNoticiaUrlsData=[];document.body.style.overflow=»;if(sourcesEl&&sourcesEl.parentNode){sourcesEl.parentNode.removeChild(sourcesEl);}},200);}function getDisplayTitle(source){if(source.title)return source.title;try{const url=new URL(source.url.replace(/[?&]merlin=true/,»));const pathname=url.pathname;const lastSegment=pathname.split(«https://elcomercio.pe/»).filter(Boolean).pop()||»;return lastSegment .replace(/-/g,’ ‘).replace(/bw/g,function(char){return char.toUpperCase();});}catch{return ‘Ver artículo’;}}function getNonNoticiaDisplayTitle(urlItem,index){if(urlItem.title)return urlItem.title;try{var clean=urlItem.url.split(‘?’)[0];var urlObj=new URL(clean);var path=urlObj.pathname.replace(/^/+/,»).replace(//$/,»);if(!path)return index!==undefined?’Ver enlace ‘+(index+1):’Ver enlace’;return ‘Ver ‘+path;}catch(e){return index!==undefined?’Ver enlace ‘+(index+1):’Ver enlace’;}}function escapeHTML(str){if(!str)return »;const div=document.createElement(‘div’);div.textContent=str;return div.innerHTML;}function sanitizeURL(url){if(!url)return »;try{const parsed=new URL(url);if(parsed.protocol!==’http:’&&parsed.protocol!==’https:’){return »;}return parsed.href;}catch{return »;}}function renderSources(){if(!showSources||(sourcesData.length===0&&nonNoticiaUrlsData.length===0))return »;const totalSources=sourcesData.length+nonNoticiaUrlsData.length;const isSingleSource=totalSources===1;return »;}const root=document.createElement(‘div’);root.id=’merlin-widget-root’;document.body.appendChild(root);function render(){root.innerHTML=’
‘+(isLoggedIn()?renderModal():»)+renderWarningModal()+renderSources()+’
‘;setupModalEventDelegation();bindEvents();}function setupModalEventDelegation(){document.removeEventListener(‘click’,handleGlobalOverlayClicks,true);document.addEventListener(‘click’,handleGlobalOverlayClicks,true);setTimeout(function(){const warningCloseBtn=document.getElementById(‘merlin-warning-modal-close’);const warningModal=document.getElementById(‘merlin-warning-modal’);const sourcesCloseBtn=document.getElementById(‘merlin-sources-close’);const sourcesOverlay=document.getElementById(‘merlin-sources-overlay’);},0);}function handleGlobalOverlayClicks(e){const target=e.target;if(!target||!target.closest)return;if(target.closest(‘#merlin-warning-modal-close’)){e.preventDefault();e.stopPropagation();closeModal();return;}if(target.closest(‘#merlin-sources-close’)){e.preventDefault();e.stopPropagation();closeSources();return;}const warningModal=document.getElementById(‘merlin-warning-modal’);if(warningModal&&target===warningModal){closeModal();return;}const sourcesOverlay=document.getElementById(‘merlin-sources-overlay’);if(sourcesOverlay&&target===sourcesOverlay){closeSources();return;}const showSourcesBtn=target.closest(‘[data-show-sources]’);if(showSourcesBtn){e.preventDefault();e.stopPropagation();const messageId=showSourcesBtn.getAttribute(‘data-show-sources’);sourcesButtonRect=showSourcesBtn.getBoundingClientRect();const msg=messages.find(function(m){return m.id===messageId;});if(!msg)return;if(msg.enrichedSources){sourcesData=msg.enrichedSources.noticiaSources||[];nonNoticiaUrlsData=msg.enrichedSources.nonNoticiaSources||[];showSources=true;isSourcesExiting=false;document.body.style.overflow=’hidden’;const totalSources=sourcesData.length+nonNoticiaUrlsData.length;const isSingleSource=totalSources===1;const finalHTML=»;const widgetDiv=root.querySelector(‘.’+CLS.widget);if(widgetDiv){const existingSources=document.getElementById(‘merlin-sources-overlay’);if(existingSources&&existingSources.parentNode){existingSources.parentNode.removeChild(existingSources);}widgetDiv.insertAdjacentHTML(‘beforeend’,finalHTML);setupModalEventDelegation();}return;}const urls=msg.urls&&msg.urls.length>0?msg.urls:extractUrlsFromMessage(msg.text);if(urls&&urls.length>0){if(!msg.urls){msg.urls=urls;}let noticiaUrls=urls.filter(function(u){return isNoticiaUrl(u.url);});const nonNoticiaUrls=urls.filter(function(u){return!isNoticiaUrl(u.url);});if(noticiaUrls.length>5){noticiaUrls=noticiaUrls.slice(noticiaUrls.length-5);}nonNoticiaUrlsData=nonNoticiaUrls;showSources=true;isSourcesExiting=false;document.body.style.overflow=’hidden’;const skeletonCount=noticiaUrls.length;const isSingleSource=skeletonCount===1;let skeletonItems=»»;for(let i=0;i
‘+safeCategory+’
‘:»)+’
‘+safeTitle+’
‘)+(safeImage?’
‘:»)+’
‘+»+’
‘;}).join(»);html+=nonNoticiaUrlsData.map(function(urlItem,index){const safeUrl=sanitizeURL(urlItem.url);if(!safeUrl)return »;const urlWithMerlin=safeUrl.includes(‘?’)?safeUrl+’&chatbotmerlin=true’:safeUrl+’?chatbotmerlin=true’;const safeTitle=escapeHTML(getNonNoticiaDisplayTitle(urlItem,index));return ‘
‘+safeTitle+’
‘+»+’
‘;}).join(»);sourcesList.innerHTML=html;}}).catch(function(err){console.error(‘[Merlin Widget]Error enriching sources:’,err);});}}}function renderModal(){return »;}function renderChat(){let messagesHTML=»;if(messages.length>0){messagesHTML=messages.map(function(msg){return renderMessage(msg);}).join(»);}else{messagesHTML=’
‘;}return ‘
‘+messagesHTML+(isBotTyping?renderTypingIndicator():»)+’
‘+_0x3m4n+’
‘;}function isMobileDevice(){return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||(‘ontouchstart’ in window)||(navigator.maxTouchPoints>0);}function updateChatDOM(){const modalBody=document.querySelector(‘.’+CLS.body);if(!modalBody)return;chatEventsBound=false;modalBody.innerHTML=renderChat();const container=document.querySelector(‘.’+CLS.chatMessages);if(container){container.style.overflowY=’auto’;container.style.overflowX=’hidden’;container.style.flex=’1′;container.style.display=’flex’;container.style.flexDirection=’column’;const targetBottom=container.scrollHeight;const startPosition=Math.max(0,targetBottom-container.clientHeight-150);container.scrollTop=startPosition;requestAnimationFrame(function(){container.scrollTo({top:container.scrollHeight,behavior:’smooth’,});});}setupChatEvents();if(pendingInputRestore){const input=document.getElementById(‘merlin-input’);if(input&&pendingInputRestore){input.value=pendingInputRestore;pendingInputRestore=null;if(!isMobileDevice()){input.focus();}}}else if(!isBotTyping&&isLoggedIn()&&!showModal&&!showSources){setTimeout(function(){const input=document.getElementById(‘merlin-input’);if(input&&!input.disabled&&!isMobileDevice()){input.focus();}},100);}const warningModal=root.querySelector(‘.’+CLS.warningModal);if(warningModal){warningModal.outerHTML=renderWarningModal();}else if(showModal){const widgetDiv=root.querySelector(‘.’+CLS.widget);if(widgetDiv){widgetDiv.insertAdjacentHTML(‘beforeend’,renderWarningModal());}}const sourcesOverlay=root.querySelector(‘.’+CLS.sourcesOverlay);if(sourcesOverlay){sourcesOverlay.outerHTML=renderSources();}else if(showSources){const widgetDiv=root.querySelector(‘.’+CLS.widget);if(widgetDiv){widgetDiv.insertAdjacentHTML(‘beforeend’,renderSources());}}}function renderMessage(msg){const bubbleClass=msg.type===’sent’?CLS.bubbleContainer+’ ‘+CLS.bubbleContainerSent:CLS.bubbleContainer+’ ‘+CLS.bubbleContainerReceived;const bubbleTypeClass=msg.type===’sent’?CLS.bubble+’ ‘+CLS.bubbleSent:CLS.bubble;if(msg.type===’received’){const formattedText=formatTextToHTML(msg.text);const sanitizedHTML=sanitizeHTML(formattedText);const urls=msg.urls&&msg.urls.length>0?msg.urls:extractUrlsFromMessage(msg.text);const hasUrls=urls&&urls.length>0;if(hasUrls&&!msg.urls){msg.urls=urls;}const showSourcesButton=msg.hasValidSources===true||(msg.enrichedSources&&(msg.enrichedSources.noticiaSources.length>0||msg.enrichedSources.nonNoticiaSources.length>0));return ‘
‘+sanitizedHTML+’
‘+(showSourcesButton?’
‘+ICONS.sourceIcon+’
Fuentes‘:»)+’
‘;}else{const div=document.createElement(‘div’);div.textContent=msg.text;const escapedText=div.innerHTML;return »;}}function renderTypingIndicator(){return ‘
‘+ICONS.merlinThinkingIcon+’
‘;}function renderScrollButton(){return »;}function renderInput(){const placeholder=isLoggedIn()?’Pregúntale a Merlín’:’Por favor inicia sesión’;const disabledAttr=!isLoggedIn()?’ disabled’:»;return ‘
‘;}function renderTooltip(){return »;}let chatEventsBound=false;function setupChatEvents(){if(chatEventsBound)return;chatEventsBound=true;const input=document.getElementById(‘merlin-input’);const sendBtn=document.getElementById(‘merlin-send’);const messagesContainer=document.querySelector(‘.’+CLS.chatMessages);const scrollBtn=document.getElementById(‘merlin-scroll-down’);if(input){input.addEventListener(‘keydown’,function(e){if(e.key===’Enter’&&!e.shiftKey&&!isBotTyping){e.preventDefault();handleSend();}});input.addEventListener(‘input’,function(e){if(!isBotTyping){const cursorPos=input.selectionStart;const originalValue=e.target.value;const sanitized=sanitizeInput(originalValue);if(sanitized!==originalValue){const diff=originalValue.length-sanitized.length;input.value=sanitized;const newPos=Math.max(0,cursorPos-diff);input.setSelectionRange(newPos,newPos);}}});input.addEventListener(‘touchstart’,function(e){if(!input.disabled){input.readOnly=false;}},{passive:true});input.addEventListener(‘focus’,function(){if(!input.disabled){input.readOnly=false;}});}if(sendBtn){sendBtn.addEventListener(‘click’,handleSend);sendBtn.addEventListener(‘touchend’,function(e){e.preventDefault();handleSend();});}if(messagesContainer){messagesContainer.addEventListener(‘scroll’,checkScrollPosition,{passive:true});}if(scrollBtn){scrollBtn.addEventListener(‘click’,function(){scrollToBottom(true);});scrollBtn.addEventListener(‘touchend’,function(e){e.preventDefault();scrollToBottom(true);});}}async function handleSend(){const input=document.getElementById(‘merlin-input’);if(!input||!isLoggedIn()||isBotTyping)return;const messageToSend=input.value.trim();if(messageToSend){const validation=validateMessage(messageToSend);if(!validation.valid){errorMessage=validation.error||’Mensaje no válido.’;showModal=true;isModalExiting=false;insertWarningModal();input.focus();return;}try{window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:’merlin_search_query’,search_term:messageToSend,query_type:’manual’,query_location:’widget’});}catch(e){console.error(‘Error pushing to dataLayer:’,e);}if(showModal){closeModal();}input.value=»»;await handleSendMessage(messageToSend);}}let mainEventsBound=false;function bindEvents(){const widgetBtn=document.getElementById(‘merlin-widget-button’);const closeBtn=document.getElementById(‘merlin-close’);const expandBtn=document.getElementById(‘merlin-expand’);const tooltipBtn=document.getElementById(‘merlin-tooltip-btn’);const tooltipMenu=document.getElementById(‘merlin-tooltip-menu’);const aboutBtn=document.getElementById(‘merlin-about’);const clearBtn=document.getElementById(‘merlin-clear’);if(widgetBtn){widgetBtn.onclick=function(){if(!isLoggedIn())return;toggle();};}if(closeBtn){closeBtn.onclick=toggle;closeBtn.ontouchend=function(e){e.preventDefault();toggle();};}if(expandBtn){expandBtn.onclick=expand;expandBtn.ontouchend=function(e){e.preventDefault();expand();};}if(tooltipBtn){const toggleTooltip=function(e){e.stopPropagation();tooltipOpen=!tooltipOpen;const menu=document.getElementById(‘merlin-tooltip-menu’);if(menu){if(tooltipOpen){menu.classList.remove(‘merlin-hidden’);}else{menu.classList.add(‘merlin-hidden’);}}};tooltipBtn.onclick=toggleTooltip;tooltipBtn.ontouchend=function(e){e.preventDefault();toggleTooltip(e);};}if(aboutBtn){aboutBtn.onclick=function(){window.open(«https://elcomercio.pe/»+LANDING_REDIRECT,’_blank’,’noopener,noreferrer’);tooltipOpen=false;const menu=document.getElementById(‘merlin-tooltip-menu’);if(menu)menu.classList.add(‘merlin-hidden’);};}if(clearBtn){clearBtn.onclick=function(){clearChat();tooltipOpen=false;const menu=document.getElementById(‘merlin-tooltip-menu’);if(menu)menu.classList.add(‘merlin-hidden’);};}if(!mainEventsBound){mainEventsBound=true;document.addEventListener(‘click’,function(e){const menu=document.getElementById(‘merlin-tooltip-menu’);const btn=document.getElementById(‘merlin-tooltip-btn’);if(menu&&btn&&tooltipOpen&&!menu.contains(e.target)&&!btn.contains(e.target)){tooltipOpen=false;menu.classList.add(‘merlin-hidden’);}});document.addEventListener(‘keydown’,handleEscKey);}}function handleEscKey(e){if(e.key===’Escape’){if(showSources){closeSources();}else if(showModal){closeModal();}}}function toggle(){if(isOpen){chatEventsBound=false;if(showModal){showModal=false;errorMessage=null;responseMessage=null;responseCode=null;remainingQuestions=null;isModalExiting=false;const modalEl=document.getElementById(‘merlin-warning-modal’);if(modalEl&&modalEl.parentNode){modalEl.parentNode.removeChild(modalEl);}}if(showSources){showSources=false;isSourcesExiting=false;document.body.style.overflow=»;const sourcesEl=document.getElementById(‘merlin-sources-overlay’);if(sourcesEl&&sourcesEl.parentNode){sourcesEl.parentNode.removeChild(sourcesEl);}}}const wasOpen=isOpen;isOpen=!isOpen;const existingModal=document.querySelector(‘.’+CLS.modal);if(existingModal){if(isOpen){existingModal.classList.add(CLS.modalOpen);}else{existingModal.classList.remove(CLS.modalOpen);}}else{render();}if(isOpen&&!wasOpen){chatEventsBound=false;retrieveHistory().then(function(){updateChatDOM();setTimeout(function(){scrollToBottom(false);checkScrollPosition();},100);}).catch(function(error){console.error(‘Error loading chat history:’,error);updateChatDOM();setTimeout(function(){scrollToBottom(false);checkScrollPosition();},100);});}else if(isOpen){try{const lastSync=localStorage.getItem(_0x9i0j);if(lastSync){retrieveHistory().then(function(){updateChatDOM();setTimeout(function(){scrollToBottom(false);checkScrollPosition();},100);}).catch(function(error){console.error(‘Error reloading messages:’,error);});}}catch(error){}setTimeout(function(){scrollToBottom(false);checkScrollPosition();},100);}}function expand(){try{localStorage.setItem(‘merlin-expand-to-chat’,’true’);localStorage.setItem(‘merlin-origin-url’,window.location.href);}catch(error){console.error(‘Error al guardar estado:’,error);}window.location.href=window.location.origin+»https://elcomercio.pe/»+REDIRECT_PATH;}(function setupStorageListener(){window.addEventListener(‘storage’,function(e){if(e.key===_0x1k2l&&e.newValue!==e.oldValue){if(isOpen&&isLoggedIn()){messages=[];showScrollButton=false;updateChatDOM();tooltipOpen=false;const scrollBtnContainer=document.querySelector(‘.’+CLS.chatScrollDownButtonContainer);if(scrollBtnContainer){scrollBtnContainer.classList.add(‘merlin-hidden’);}}}else if(e.key===_0x9i0j&&e.newValue!==e.oldValue){if(isOpen&&isLoggedIn()){setTimeout(function(){retrieveHistory().then(function(){responseCode=null;responseMessage=null;errorMessage=null;updateChatDOM();setTimeout(function(){scrollToBottom(false);checkScrollPosition();},100);}).catch(function(error){console.error(‘Error reloading messages after sync:’,error);});},500);}}});})();function startWidget(){(async function init(){try{await waitForCryptoHelpers();}catch(error){console.error(‘Failed to load cryptoHelpers:’,error);}messages=[];render();})();}if(document.readyState===’loading’){document.addEventListener(‘DOMContentLoaded’,startWidget);}else{startWidget();}})();













