{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6********************************************","webpack:///layout-script.js","webpack:///webpack/bootstrap d5734f541ded75760e6e?820c********************************************","webpack:///./src/scripts/layout-script.js","webpack:///./src/scripts/article/additionaldata-script.js?7b4a******","webpack:///./src/scripts/article/te-interesa.js?bb66","webpack:///./src/scripts/layout/vam-debug.js?7e50*","webpack:///./src/scripts/layout/push-notification-indigitall.js?b817*****","webpack:///./src/scripts/home/sectionLoadUtils.js?5d42","webpack:///./src/tracking/trackUtils.js?0875","webpack:///./src/scripts/layout/sticky-kit.js?f8b5*","webpack:///./src/scripts/home/menus.js?0ec3**","webpack:///./src/scripts/layout/vocuser-notifications.js?ea59**","webpack:///./src/scripts/layout/sticky-header.js?48d3*","webpack:///./src/scripts/layout/social-toolbar.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_toConsumableArray","arr","Array","isArray","i","arr2","length","from","createCookie","src","content","arguments","undefined","Logger","info","date","Date","minutes","setTime","getTime","cookieParameters","path","expires","Cookies","compruebaCookie","_socialToolbar","_socialToolbar2","_stickyKit","_menus","_stickyHeader","_sectionLoadUtils","_sectionLoadUtils2","_teInteresa","_teInteresa2","_pushNotificationIndigitall","_vamDebug","_vamDebug2","_vocuserNotifications","_additionaldataScript","debug","app","Voonto","getInstance","feature","window","nibara","libPath","lookup","host","location","$","each","href","attr","indexOf","click","target","animate","scrollTop","offset","top","lazyLoad","LazyLoad","elements_selector","data_src","on","ev","handleScroll","is","mobile","menusMobile","tablet","vocento","tracking","comscore","voc_tc","menusDesktop","stickyHeaderMobile","stickyHeaderDesktop","load","then","stick_in_parent","offset_top","spacer","SocialToolbar","$stickyAds","enable","hide","delay","setTimeout","show","initSticky","recalcSticky","document","addEventListener","nTools","throttle","vocUserPath","vocUserVersion","commentsPath","when","e","homeBacktrace","data","isBack","history","state","section","height","disableHomeTopAds","lastSectionView","search","vamPath","vamUrl","parent","hasClass","vamApi","adsContainer","querySelectorAll","forEach","element","isPositionInactive","position","dataset","vocVamPosition","inactive","$formsBusqueda","preventDefault","stopPropagation","str","find","val","kebabCase","which","$parentForm","closest","trigger","cookieLaw","defaultChannels","domainPush","URL","url","checkPushStatus","response","permission","navigator","indigitall","loadIndigitall","channels","subscribeToChannels","oldState","Notification","newState","breakingNews","$urgente","$cerrarUrgente","type","teInteresa","showTeInteresa","teinteresa","shareLayer","inputShareLayer","labelShareLayer","inputFixedLayer","labelFixedLayer","containerShareLayer","containerShareFixedLayer","closeShareLayerHandler","prop","unbind","closeClickDocumentShareLayerHandler","closeFixedShareLayerHandler","contains","get","$this","one","gigyaUX","userType","getUserType","notificationsLoad","checkInterest","getTimeoutPopup","$btn","POPUP_TIMEOUT_STARRED","POPUP_TIMEOUT_FOLLOWING","POPUP_TIMEOUT_EVENT","POPUP_TIMEOUT_CONTEST","POPUP_TIMEOUT_CREATE_COMMENT","POPUP_TIMEOUT_LIKE_COMMENT","POPUP_TIMEOUT_OPINION","POPUP_TIMEOUT_REGISTER","POPUP_TIMEOUT_LOGIN","parseUrl","parser","createElement","protocol","hostname","port","pathname","hash","origin","createCSData","$elm","serviceId","serviceReference","match","res","split","vocUserNotificationsPath","vocUserNotifications","normalize","replace","getInitialText","initialText","text","createPopupCookie","EXPIRE_COOKIE_POPUP_TIME","cookie","toUTCString","getUserDataText","$arrayNames","fieldText","nameAux","checkUserData","baseurl","btn","fields","hasOwnProperty","push","ajax","xhrFields","withCredentials","timeout","fail","jqXHR","textStatus","errorThrown","error","done","code","user","countShow","removeClass","arrayNames","Object","keys","key","field","addClass","currentDate","parseInt","getFullYear","change","nameField","username","updateAdditionalData","newfields","setCustomValidity","reportValidity","isValidDate","dataType","savedData","getUserInterests","s","dateFormat","test","dateArray","testDate","getDate","getMonth","checkUserInterests","hasinterests","interestslist","html","elem","append","substr","name","handleCheckedInterestsClick","_typeof","removeAttr","currentcontainer","oldnextcontainer","updateUserInterests","interests","interest","currentContainer","urlReferer","referrer","timeoutPopupAddData","includes","originRegister","originText","originLogin","updatedUserInfo","actionCustomService","action","event","updateCustomerServiceInCookieVocUser","showLogin","showRegistration","sendCustomerService","defineProperty","value","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","TeInteresa","form","isMobile","isTablet","$container","_this","tc","voc_tcnew","se","voc_se","noticiaid","mobileShowToolbar","mobileHideToolbar","swiper","mobileEvents","disable","_this2","_this3","css","numElem","IntID","setTimer","clearInterval","changeSlide","_this4","setInterval","newId","debugVam","v","$v","media","config","vam","posiciones","posicion_mobile","posicion_desktop","getAttribute","posicion","dimensiones","dims","JSON","parse","minDim","maxWidth","width","minHeight","background-color","text-align","padding-top","display","ex","initVamDebug","elm","getPushStatusChecker","cb","psc","querySelector","style","body","appendChild","parentNode","removeChild","prevHandler","onmessage","assign","contentWindow","postMessage","success","subscribe","trackUtils","SectionLoadUtils","segment","replaceState","$stickySectionName","nsChannel","voc_site","nsLinkname","trackingMark","voc_s1","desktop","$sectionName","off","$link","$parent","$prev","parentsUntil","last","prev","next","slideToggle","tipoAnimacion","toggleClass","scrollTo","reload","TagManager","set","seccion","subseccion1","subseccion2","voc_s2","subseccion3","voc_s3","subseccion4","voc_s4","titular","voc_tn","tipoDominio","voc_pr","edicion","voc_ed","tipoContenido","tipoContenidoA","plataformaContenido","voc_pl","sistemaPublicacion","voc_pu","fechaPrimeraPublicacion","voc_fep","fechaModificacion","voc_fem","idioma","voc_idi","IDEvolok","voc_pw_pid","firmaAutor","voc_au","origenContenido","voc_or","topics","voc_top","scrollInfinito","scrollInfinitoHome","scrollDireccion","track","dataLayer","reason","imgTrack","k","message","today","time","getHours","getMinutes","getSeconds","dateTime","querystring","encodeURI","img","exportRootVars","exportComscoreVars","voc_ate","voc_npc","setTrackBuscadorPlaySummum","main","getElementsByTagName","keywords","num_entries","buscador","keyword","tipoBuscador","errorBusqueda","nResultados","string","result","toLowerCase","recalBody","tamBody","tamColC","cargaSticky","getSectionUrl","stop","right","listNotifications","siteType","opacity","botonUsuarioLogin","botonAlertaLogin","menuUsuarioLogin","menuAlertaLogin","botonUsuarioLoginSticky","botonAlertaLoginSticky","menuUsuarioLoginSticky","menuAlertaLoginSticky","countNotifications","ids","deleteNotifications","status","confirmClickedUrl","count","confirmNotifications","notifications","statusNotif","events","all","remove","hitsMenu","daysRecents","dateRecents","Promise","resolve","reject","displayNotification","$list","notification","mchannel","source","linkname","vtmInfo","title","tagging","authorBottom","fecha","safari","a","b","Number","padLeft","base","chr","len","String","join","dformat","notificationsUrl","notificationsNoUrl","children","list","recientes","anteriores","slice","notDate","notificationDate","items","checkNotificationsEmpty","$listwebpage","fijarCabeceraSticky","cabeceraPortada","parentElement","classList","add","previousElementSibling","marginBottom","soltarCabeceraSticky","cabeceraStickyVisible","cabeceraStickyOculta","posicionAnterior","posCabecera","estadoCabecera","navPortada","posicionCabecera","offsetTop","offsetHeight","scrollY","menuStickyPortada","botonUsuarioLogout","capaMenu","botonUsuarioLogoutSticky","posicionNavPortada","getBoundingClientRect","bottom","redesFijo","redesSticky","redesRelativo","$document","marcador","redes","nextElementSibling","estadoRedes","isEnabled"],"mappings":"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","file":"layout-script.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nibara\"] = factory();\n\telse\n\t\troot[\"Nibara\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nibara\"] = factory();\n\telse\n\t\troot[\"Nibara\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _socialToolbar = __webpack_require__(16);\n\t\n\tvar _socialToolbar2 = _interopRequireDefault(_socialToolbar);\n\t\n\tvar _stickyKit = __webpack_require__(12);\n\t\n\tvar _menus = __webpack_require__(13);\n\t\n\tvar _stickyHeader = __webpack_require__(15);\n\t\n\tvar _sectionLoadUtils = __webpack_require__(10);\n\t\n\tvar _sectionLoadUtils2 = _interopRequireDefault(_sectionLoadUtils);\n\t\n\tvar _teInteresa = __webpack_require__(5);\n\t\n\tvar _teInteresa2 = _interopRequireDefault(_teInteresa);\n\t\n\tvar _pushNotificationIndigitall = __webpack_require__(8);\n\t\n\tvar _vamDebug = __webpack_require__(7);\n\t\n\tvar _vamDebug2 = _interopRequireDefault(_vamDebug);\n\t\n\tvar _vocuserNotifications = __webpack_require__(14);\n\t\n\tvar _additionaldataScript = __webpack_require__(1);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tLogger.debug('script layout loaded');\n\t\n\t/** get main vars **************************************************************************/\n\tvar app = Voonto.getInstance();\n\tvar feature = window.nibara.feature;\n\t\n\tvar libPath = app.lookup('vocento.config.nibara').libPath;\n\tif (libPath === undefined) {\n\t throw 'nibara libPath config is empty';\n\t}\n\t\n\t/** Menu absoluto abcblogs.abc.es **/\n\tvar host = window.location.host;\n\tLogger.debug('[ABCBlogs] change path menu > host: ' + host);\n\tif ('abcblogs.abc.es' === host) {\n\t Voonto.$('.primer-nivel li a').each(function () {\n\t var href = Voonto.$(this).attr('href');\n\t Logger.debug('[ABCBlogs] change path menu: ' + href);\n\t if (href.indexOf('https://') == -1 && href.indexOf('http://') == -1) {\n\t Voonto.$(this).attr('href', 'https://www.abc.es' + href);\n\t }\n\t });\n\t\n\t Voonto.$('.segundo-nivel li a').each(function () {\n\t var href = Voonto.$(this).attr('href');\n\t Logger.debug('[ABCBlogs] change path menu: ' + href);\n\t if (href.indexOf('https://') == -1 && href.indexOf('http://') == -1) {\n\t Voonto.$(this).attr('href', 'https://www.abc.es' + href);\n\t }\n\t });\n\t}\n\t\n\t/** btn up *********************************************************************************/\n\tVoonto.$('.boton.subir.suave').click(function () {\n\t var target = Voonto.$('[name=top]');\n\t if (target) {\n\t Voonto.$('html,body').animate({\n\t scrollTop: target.offset().top\n\t }, 2000);\n\t return false;\n\t }\n\t});\n\t\n\t/** image lazyload **************************************************************************/\n\tVoonto.lazyLoad = new LazyLoad({\n\t elements_selector: \".lzld\",\n\t data_src: \"src\"\n\t});\n\t\n\tVoonto.$('.lzld-scroll').on('click', function (ev) {\n\t Voonto.lazyLoad.handleScroll();\n\t});\n\t\n\t/** Menus ***********************************************************************************/\n\tif (Voonto.is.mobile()) {\n\t Logger.info('Load menu mobile');\n\t (0, _menus.menusMobile)();\n\t} else if (Voonto.is.tablet()) {\n\t if (vocento.tracking.comscore.voc_tc !== 'portada' && vocento.tracking.comscore.voc_tc !== 'portadilla') {\n\t Logger.info('Load menu mobile in news');\n\t (0, _menus.menusMobile)();\n\t } else {\n\t Logger.info('Load menu desktop in home');\n\t (0, _menus.menusDesktop)();\n\t }\n\t} else {\n\t Logger.info('Load menu desktop in home');\n\t (0, _menus.menusDesktop)();\n\t}\n\t\n\t/** sticky header ***************************************************************************/\n\tif (Voonto.is.mobile()) {\n\t (0, _stickyHeader.stickyHeaderMobile)();\n\t} else {\n\t (0, _stickyHeader.stickyHeaderDesktop)();\n\t}\n\t\n\tif (Voonto.is.tablet()) {\n\t app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(function () {\n\t Voonto.$('[data-sticky]').stick_in_parent({\n\t offset_top: 20,\n\t spacer: false\n\t });\n\t });\n\t}\n\t\n\t/** tracking sticky mobile buttons ************************************************/\n\tif (Voonto.is.mobile() || Voonto.is.tablet()) {\n\t Voonto.SocialToolbar = new _socialToolbar2.default();\n\t var $stickyAds = Voonto.$('.publi-sticky');\n\t\n\t Voonto.$('.publi-sticky.sticky > .botones.cerrar').on('click', function () {\n\t Voonto.SocialToolbar.enable();\n\t });\n\t\n\t $stickyAds.on('click', function () {\n\t Voonto.$(this).hide();\n\t });\n\t\n\t /**\n\t * show Ads sticky when detect scroll\n\t * @type {boolean}\n\t */\n\t var delay = false;\n\t Voonto.$(window).on(\"scroll\", function () {\n\t if (delay) return;\n\t\n\t delay = setTimeout(function () {\n\t if ($stickyAds.attr('data-rendered') === 'true') {\n\t $stickyAds.show();\n\t $stickyAds.attr('data-rendered', false);\n\t /*if (document.location.href.indexOf(\"/cultura/\") > -1 && 'noticia' === vocento.tracking.comscore.voc_tc) {\n\t setTimeout(function () {\n\t Voonto.$('.publi-sticky.sticky > .botones.cerrar').click();\n\t }, 3000);\n\t }*/\n\t }\n\t delay = false;\n\t }, 50);\n\t });\n\t} else {\n\t if (vocento.tracking.comscore.voc_tc !== 'portada' && vocento.tracking.comscore.voc_tc !== 'portadilla') {\n\t app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(function () {\n\t Voonto.$('[data-sticky]').stick_in_parent({\n\t offset_top: 20,\n\t spacer: false\n\t });\n\t });\n\t\n\t (0, _stickyKit.initSticky)();\n\t\n\t Voonto.$(window).on('resize', function () {\n\t Logger.info('[Sticky] Window Resize');\n\t (0, _stickyKit.recalcSticky)();\n\t });\n\t\n\t Voonto.$('[data-voc-vam]').on('vam:viewable', function () {\n\t Logger.info('[Sticky] Banner', Voonto.$(this), 'viewable');\n\t (0, _stickyKit.recalcSticky)();\n\t });\n\t\n\t app.on('layout:init-sticky', function () {\n\t (0, _stickyKit.initSticky)();\n\t });\n\t\n\t app.on('layout:recalc-sticky', function () {\n\t (0, _stickyKit.recalcSticky)();\n\t });\n\t\n\t document.addEventListener('scroll', nibara.nTools.throttle(200, function () {\n\t (0, _stickyKit.recalcSticky)();\n\t }));\n\t }\n\t}\n\t\n\t/** VocUser **********************************************************************/\n\tvar vocUserPath = app.lookup('vocento.config.nibara').vocUserPath;\n\tif (vocUserPath === undefined) {\n\t throw 'vocUserPath path in config is empty';\n\t}\n\tvar vocUserVersion = app.lookup('vocento.config.nibara').vocUserVersion;\n\tif (vocUserVersion === undefined) {\n\t throw 'vocuser version is empty';\n\t}\n\tLogger.info('Loading vocuser version: ' + vocUserVersion);\n\tapp.load(vocUserPath + '/vocento-vocuser-preloader.js?v=' + vocUserVersion);\n\t\n\t/** Comments */\n\tvar commentsPath = app.lookup('vocento.config.nibara').commentsPath;\n\tLogger.info('Loading comments version: ' + commentsPath);\n\tif (commentsPath === undefined) {\n\t throw 'commentsPath path in config is empty';\n\t}\n\t\n\tapp.when('vocuser:gigyaready').then(function (e) {\n\t app.load(commentsPath + '/comments.js');\n\t});\n\t\n\t/** Vam **************************************************************************/\n\t\n\tif (feature.homeBacktrace && Voonto.$('body').data('seccion') === 'portada' && window.nibara.isBack === true) {\n\t\n\t if (history.state.section === 'main' && typeof history.state.scrollTop !== 'undefined' && history.state.scrollTop > Voonto.$('[data-section=\"main\"]').height()) {\n\t _sectionLoadUtils2.default.disableHomeTopAds();\n\t }\n\t if (history.state.lastSectionView !== 'main') {\n\t _sectionLoadUtils2.default.disableHomeTopAds();\n\t }\n\t}\n\t\n\tif (window.location.search.indexOf('nDebug_vam=1') > 0) {\n\t (0, _vamDebug2.default)(app);\n\t} else {\n\t var vamPath = app.lookup('vocento.config.nibara').vamPath;\n\t if (vamPath === undefined) {\n\t throw 'nibara vamPath config is empty';\n\t }\n\t var vamUrl = vamPath + \"/vam.js\";\n\t Logger.info('Loading vam version: ' + vamUrl);\n\t\n\t app.load(vamUrl);\n\t}\n\t\n\t/** Vam empty position autohide ***************************************************/\n\tVoonto.$('[data-voc-vam]').on('vam:isempty', function () {\n\t if ($(this).parent().hasClass('publicidad-portada')) {\n\t Logger.info('[VAM] Ad slot is empty, hide position: ' + Voonto.$(this).data('voc-vam-position'));\n\t Voonto.$(this).hide();\n\t Voonto.$(this).parent().hide();\n\t }\n\t});\n\t\n\tVoonto.getInstance().when('vam:apiready').then(function (vamApi) {\n\t var adsContainer = [].concat(_toConsumableArray(document.querySelectorAll('[data-voc-vam]')));\n\t adsContainer.forEach(function (element) {\n\t vamApi.isPositionInactive({ position: element.dataset.vocVamPosition + \"-id\" }).then(function (inactive) {\n\t if (inactive) {\n\t Logger.info('[VAM] Ad slot is inactive, hide position: ' + Voonto.$(element).data('voc-vam-position'));\n\t Voonto.$(undefined).hide();\n\t Voonto.$(undefined).parent().hide();\n\t }\n\t });\n\t });\n\t});\n\t\n\t/** header search widget *********************************************************/\n\tvar $formsBusqueda = Voonto.$(\".buscador-cabecera, nav.navegacion form.buscador\");\n\t\n\t$formsBusqueda.on(\"submit\", function (e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t\n\t Logger.info('Buscador cabecera');\n\t\n\t var str = Voonto.$(this).find('input').val();\n\t var location = '/hemeroteca/';\n\t\n\t if (str.length > 0) {\n\t str = window.nibara.nTools.kebabCase(str);\n\t if (window.location.href.indexOf('lavozdigital.es') > -1) {\n\t location += 'noticias/';\n\t str += '.html';\n\t }\n\t location += str;\n\t }\n\t\n\t Logger.debug('Buscador action: ', location);\n\t window.location.href = location;\n\t\n\t return false;\n\t});\n\t\n\t$formsBusqueda.find('input').on('keypress', function (e) {\n\t if (e.which === 13) {\n\t var $parentForm = Voonto.$(this).closest('form');\n\t Logger.info('Buscador keypress Enter -> trigger submit form.'.$parentForm.attr('class'));\n\t $parentForm.trigger('submit');\n\t }\n\t});\n\t\n\t/** cookie law (deprecated) ***/\n\tif (feature.cookieLaw) {\n\t var createCookieLaw = function createCookieLaw() {\n\t if (document.cookie.indexOf(\"cookie_20170731\") === -1) {\n\t var cookieName = 'cookie_20170731';\n\t Logger.info('[Cookie Layer] createCookieLaw: ' + cookieName);\n\t var cookieDate = new Date();\n\t cookieDate.setFullYear(cookieDate.getFullYear() + 1);\n\t document.cookie = cookieName + '=visited; expires=' + cookieDate.toGMTString() + ';';\n\t Voonto.$('.capa-cookies').fadeOut().hide();\n\t }\n\t };\n\t\n\t var checkCookieLaw = function checkCookieLaw() {\n\t Logger.info('[Cookie Layer] checkCookieLaw');\n\t if (document.cookie.indexOf(\"cookie_20170731\") === -1) {\n\t var cookieDiv = $('.capa-cookies');\n\t cookieDiv.show();\n\t\n\t Voonto.$(window).one('mousewheel', function (e) {\n\t Logger.info('[Cookie Layer] create cookie mousewheel');\n\t createCookieLaw();\n\t });\n\t\n\t Voonto.$(window).one('scroll', function (e) {\n\t Logger.info('[Cookie Layer] create cookie scroll');\n\t createCookieLaw();\n\t });\n\t\n\t Voonto.$(window).one('touchmove', function (e) {\n\t Logger.info('[Cookie Layer] create cookie touchmove');\n\t createCookieLaw();\n\t });\n\t\n\t cookieDiv.click(function () {\n\t Logger.info('[Cookie Layer] create cookie click');\n\t createCookieLaw();\n\t });\n\t }\n\t };\n\t\n\t Logger.debug(\"feature cookieLaw active\");\n\t}\n\t\n\t/** Push notifications Indigitall ************************************************************/\n\tdocument.addEventListener('indigitallReady', function () {\n\t var defaultChannels = [];\n\t var domainPush = 'push.abc.es';\n\t if (document.URL.indexOf('sevilla.abc.es') > -1) {\n\t domainPush = 'push-sevilla.abc.es';\n\t } else if (document.URL.indexOf('.lavozdigital.es') > -1) {\n\t domainPush = 'push.lavozdigital.es';\n\t }\n\t var url = \"https://\" + domainPush + \"/pushStatusChecker.html?v=1\";\n\t\n\t (0, _pushNotificationIndigitall.checkPushStatus)(url, function (response) {\n\t Logger.debug(domainPush + ' enabled: ' + response.permission);\n\t if (!response.permission) {\n\t var oldState = window.Notification.permission;\n\t navigator.indigitall.loadIndigitall(function () {\n\t var newState = window.Notification.permission;\n\t if (newState != oldState && newState == 'granted' && Array.isArray(defaultChannels) && defaultChannels.length > 0) {\n\t (0, _pushNotificationIndigitall.subscribeToChannels)(defaultChannels);\n\t }\n\t });\n\t } else {\n\t navigator.indigitall.loadIndigitall(function () {\n\t if (Array.isArray(response.channels) && response.channels.length > 0) {\n\t (0, _pushNotificationIndigitall.subscribeToChannels)(response.channels);\n\t } else if (Array.isArray(defaultChannels) && defaultChannels.length > 0) {\n\t (0, _pushNotificationIndigitall.subscribeToChannels)(defaultChannels);\n\t }\n\t });\n\t }\n\t });\n\t});\n\t\n\tapp.load('/indigitall/indigitall.min.js?v=20190218');\n\t\n\t/** create cookie function *******************************************************/\n\tfunction createCookie(src) {\n\t var content = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\t\n\t Logger.info('[Breaking News] Creo una cookie para un tiempo de vida de 1 hora.');\n\t // Creo una cookie para un tiempo de vida de 1 hora.\n\t var date = new Date();\n\t var minutes = 60;\n\t date.setTime(date.getTime() + minutes * 60 * 1000);\n\t\n\t var cookieParameters = { path: '/', expires: date };\n\t Cookies(src, content, cookieParameters);\n\t}\n\t\n\tfunction compruebaCookie() {\n\t Logger.info('[Breaking News] compruebaCookie');\n\t var src = 'BreakingNews-ABC';\n\t Logger.info('[Breaking News] src: ' + src);\n\t return !(Cookies(src) === null || Cookies(src) === \"\" || Cookies(src) === \"null\" || typeof Cookies(src) === 'undefined');\n\t}\n\t\n\t/** sticky breaking-news|social|ads *********************************************************/\n\tif (feature.breakingNews && (Voonto.is.mobile() || Voonto.is.tablet())) {\n\t\n\t var $urgente = Voonto.$('.urgente-teinteresa');\n\t if ($urgente.length > 0) {\n\t var $cerrarUrgente = $urgente.find('.cerrar');\n\t var type = $cerrarUrgente.data('type');\n\t if (type === 'urgente') {\n\t if (compruebaCookie()) {\n\t Logger.info('[Breaking News] urgente hide. Existe cookie');\n\t $urgente.hide();\n\t } else {\n\t Logger.info('[Breaking News] urgente show. No existe cookie');\n\t $urgente.show();\n\t }\n\t } else {\n\t Logger.info('[Breaking News] urgente show. Existe urgente multiple');\n\t $urgente.show();\n\t }\n\t\n\t $cerrarUrgente.click(function () {\n\t $urgente.hide();\n\t Voonto.SocialToolbar.enable();\n\t\n\t var type = $cerrarUrgente.data('type');\n\t if (type === 'te-interesa') {\n\t return false;\n\t }\n\t\n\t var src = 'BreakingNews-ABC';\n\t var content = 'Breaking News - ABC';\n\t createCookie(src, content);\n\t });\n\t }\n\t\n\t Voonto.$('.noticia').click(function () {\n\t Logger.info('[Breaking News] click noticia');\n\t var type = Voonto.$(this).data('type');\n\t if (type === 'urgente') {\n\t var src = 'BreakingNews-ABC';\n\t var content = 'Breaking News - ABC';\n\t createCookie(src, content);\n\t }\n\t\n\t Logger.info('[Breaking News] type: ', type);\n\t\n\t var href = Voonto.$(this).data('href');\n\t if (typeof href !== 'undefined') {\n\t Logger.info('[Breaking News] href: ', href);\n\t window.location.href = href;\n\t }\n\t });\n\t}\n\t\n\t/** sticky teInteresa|ads ***************************************************/\n\tif (feature.teInteresa && (Voonto.is.mobile() || Voonto.is.tablet())) {\n\t Logger.debug(\"feature teInteresa active\");\n\t\n\t $stickyAds.find('[data-voc-vam]').on('vam:isempty', function () {\n\t Logger.info('[data-voc-vam][Breaking News] position megabanner_sticky is empty');\n\t var $urgente = Voonto.$('.urgente-teinteresa');\n\t var showTeInteresa = true;\n\t if ($urgente.length > 0) {\n\t var _$cerrarUrgente = $urgente.find('.cerrar');\n\t var _type = _$cerrarUrgente.data('type');\n\t if (_type === 'urgente') {\n\t if (compruebaCookie()) {\n\t Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n\t showTeInteresa = false;\n\t }\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n\t showTeInteresa = false;\n\t }\n\t }\n\t\n\t if (!showTeInteresa) {\n\t Logger.info('BreakingNews ad slot is empty but exist urgente');\n\t $stickyAds.hide();\n\t } else {\n\t if (Voonto.$('body').data('seccion') !== 'portada') {\n\t Logger.info('BreakingNews ad slot is empty');\n\t $stickyAds.hide();\n\t var teinteresa = new _teInteresa2.default();\n\t teinteresa.load(Voonto.$('#breaking-news-container'));\n\t }\n\t }\n\t });\n\t\n\t $stickyAds.find('[data-voc-vam]').on('vam:inactive', function () {\n\t Logger.info('[data-voc-vam][Breaking News] position megabanner_sticky is inactive');\n\t var $urgente = Voonto.$('.urgente-teinteresa');\n\t var showTeInteresa = true;\n\t if ($urgente.length > 0) {\n\t var _$cerrarUrgente2 = $urgente.find('.cerrar');\n\t var _type2 = _$cerrarUrgente2.data('type');\n\t if (_type2 === 'urgente') {\n\t if (compruebaCookie()) {\n\t Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n\t showTeInteresa = false;\n\t }\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n\t showTeInteresa = false;\n\t }\n\t }\n\t\n\t if (!showTeInteresa) {\n\t Logger.info('BreakingNews ad slot is inactive but exist urgente');\n\t $stickyAds.hide();\n\t } else {\n\t if (Voonto.$('body').data('seccion') !== 'portada') {\n\t Logger.info('BreakingNews ad slot is inactive');\n\t $stickyAds.hide();\n\t var teinteresa = new _teInteresa2.default();\n\t teinteresa.load(Voonto.$('#breaking-news-container'));\n\t }\n\t }\n\t });\n\t\n\t $stickyAds.find('[data-voc-vam]').on('vam:slotrendered', function () {\n\t var $urgente = Voonto.$('.urgente-teinteresa');\n\t var showTeInteresa = true;\n\t if ($urgente.length > 0) {\n\t var _$cerrarUrgente3 = $urgente.find('.cerrar');\n\t var _type3 = _$cerrarUrgente3.data('type');\n\t if (_type3 === 'urgente') {\n\t if (compruebaCookie()) {\n\t Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n\t showTeInteresa = false;\n\t }\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n\t showTeInteresa = false;\n\t }\n\t }\n\t\n\t if (!showTeInteresa) {\n\t Logger.info('[data-voc-vam][Breaking News] ad slot is active but exist urgente');\n\t $stickyAds.hide();\n\t } else {\n\t Logger.info('[data-voc-vam][Breaking News] ad slot is active');\n\t $stickyAds.attr('data-rendered', true);\n\t }\n\t });\n\t\n\t /**\n\t * show Ads sticky when detect scroll\n\t * @type {boolean}\n\t */\n\t var _delay = false;\n\t Voonto.$(window).on(\"scroll\", function () {\n\t if (_delay) return;\n\t\n\t _delay = setTimeout(function () {\n\t if ($stickyAds.attr('data-rendered') === 'true') {\n\t $stickyAds.show();\n\t $stickyAds.attr('data-rendered', false);\n\t if (document.location.href.indexOf(\"/cultura/\") > -1 && 'noticia' === vocento.tracking.comscore.voc_tc) {\n\t setTimeout(function () {\n\t Voonto.$('.publi-sticky.sticky > .botones.cerrar').click();\n\t }, 3000);\n\t }\n\t }\n\t _delay = false;\n\t }, 50);\n\t });\n\t\n\t $stickyAds.on('click', function () {\n\t Voonto.$(this).hide();\n\t });\n\t}\n\t\n\t// Comportamiento para cerrar el menu de compartir cuando se hace scroll\n\tif (feature.shareLayer) {\n\t Logger.debug(\"feature shareLayer active\");\n\t var inputShareLayer = Voonto.$('input#capa_compartir'),\n\t labelShareLayer = Voonto.$('label[for=\"capa_compartir\"]'),\n\t inputFixedLayer = Voonto.$('input#capa_compartir_fija'),\n\t labelFixedLayer = Voonto.$('label[for=\"capa_compartir_fija\"]'),\n\t containerShareLayer = Voonto.$('aside.herramientas:not(.fija) .mas-compartir'),\n\t containerShareFixedLayer = Voonto.$('aside.herramientas.fija .mas-compartir');\n\t\n\t var closeShareLayerHandler = function closeShareLayerHandler() {\n\t Logger.info('[CloseShareLayerHandler] scrolled');\n\t\n\t if (inputShareLayer.prop('checked') === true) {\n\t inputShareLayer.prop('checked', false);\n\t Logger.info('[CloseShareLayerHandler] ShareLayer abierta, cerrando..');\n\t }\n\t\n\t Voonto.$(window).unbind('scroll', undefined);\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n\t };\n\t\n\t var closeFixedShareLayerHandler = function closeFixedShareLayerHandler() {\n\t Logger.info('[CloseFixedShareLayerHandler] scrolled');\n\t\n\t if (inputFixedLayer.prop('checked') === true) {\n\t inputFixedLayer.prop('checked', false);\n\t Logger.info('[CloseShareLayerHandler] ShareFixedLayer abierta, cerrando..');\n\t }\n\t\n\t Voonto.$(window).unbind('scroll', undefined);\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n\t };\n\t\n\t var closeClickDocumentShareLayerHandler = function closeClickDocumentShareLayerHandler(e) {\n\t Logger.info('[CloseShareLayerHandler] document onclick');\n\t\n\t if (inputShareLayer.prop('checked') === true) {\n\t // esta abierto el menu compartir\n\t if (Voonto.$.contains(containerShareLayer.get(0), e.target) === false && Voonto.$.contains(labelShareLayer.get(0), e.target) === false) {\n\t inputShareLayer.prop('checked', false);\n\t Voonto.$(document).unbind('click', undefined);\n\t Voonto.$(window).unbind('scroll', closeShareLayerHandler);\n\t Logger.info('[CloseShareLayerHandler] ShareLayer abierta, cerrando..');\n\t }\n\t }\n\t\n\t if (inputFixedLayer.prop('checked') === true) {\n\t // esta abierto el menu compartir de la barra fija\n\t if (Voonto.$.contains(containerShareFixedLayer.get(0), e.target) === false && Voonto.$.contains(labelFixedLayer.get(0), e.target) === false) {\n\t inputFixedLayer.prop('checked', false);\n\t Voonto.$(document).unbind('click', undefined);\n\t Voonto.$(window).unbind('scroll', closeFixedShareLayerHandler);\n\t Logger.info('[CloseShareLayerHandler] ShareFixedLayer abierta, cerrando..');\n\t }\n\t }\n\t };\n\t\n\t inputShareLayer.on('change', function () {\n\t var $this = Voonto.$(this);\n\t Logger.info('[CloseShareLayerHandler] input change');\n\t if ($this.prop('checked') === true) {\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler).on('click', closeClickDocumentShareLayerHandler);\n\t } else {\n\t Voonto.$(window).unbind('scroll', closeShareLayerHandler);\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n\t }\n\t });\n\t\n\t inputFixedLayer.on('change', function () {\n\t var $this = Voonto.$(this);\n\t Logger.info('[CloseFixedShareLayerHandler] input change');\n\t if ($this.prop('checked') === true) {\n\t Voonto.$(window).one('scroll', closeFixedShareLayerHandler);\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler).on('click', closeClickDocumentShareLayerHandler);\n\t } else {\n\t Voonto.$(window).unbind('scroll', closeFixedShareLayerHandler);\n\t Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n\t }\n\t });\n\t}\n\t\n\t/*************** Notificaciones MiABC y Popup datos adicionales *******************/\n\tapp.when('vocuser:ready').then(function (gigyaUX) {\n\t Logger.debug('[vocuser-ready] gigyaUX', gigyaUX);\n\t var userType = gigyaUX.getUserType();\n\t if (userType !== 'anonimo') {\n\t Logger.debug('[vocuser-ready] usuario logado', gigyaUX);\n\t (0, _vocuserNotifications.notificationsLoad)();\n\t (0, _additionaldataScript.checkInterest)();\n\t }\n\t});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\texports.getTimeoutPopup = getTimeoutPopup;\n\texports.parseUrl = parseUrl;\n\texports.createCSData = createCSData;\n\texports.getInitialText = getInitialText;\n\texports.createPopupCookie = createPopupCookie;\n\texports.getUserDataText = getUserDataText;\n\texports.checkUserData = checkUserData;\n\texports.updateAdditionalData = updateAdditionalData;\n\texports.isValidDate = isValidDate;\n\texports.checkUserInterests = checkUserInterests;\n\texports.handleCheckedInterestsClick = handleCheckedInterestsClick;\n\texports.getUserInterests = getUserInterests;\n\texports.updateUserInterests = updateUserInterests;\n\texports.checkInterest = checkInterest;\n\texports.updatedUserInfo = updatedUserInfo;\n\texports.actionCustomService = actionCustomService;\n\t//TIMEOUTS EN MILISEGUNDOS\n\tvar POPUP_TIMEOUT_STARRED = 10000;\n\tvar POPUP_TIMEOUT_FOLLOWING = 5000;\n\tvar POPUP_TIMEOUT_OPINION = 10000;\n\tvar POPUP_TIMEOUT_CREATE_COMMENT = 5000;\n\tvar POPUP_TIMEOUT_LIKE_COMMENT = 5000;\n\tvar POPUP_TIMEOUT_CONTEST = 10000;\n\tvar POPUP_TIMEOUT_EVENT = 10000;\n\tvar POPUP_TIMEOUT_REGISTER = 15000; //DEF\n\t//const POPUP_TIMEOUT_REGISTER = 60000;\n\tvar POPUP_TIMEOUT_LOGIN = 60000; //DEF\n\t//const POPUP_TIMEOUT_LOGIN = 3000;\n\t\n\t//const EXPIRE_COOKIE_POPUP_TIME = 180000; //3 MINUTOS\n\tvar EXPIRE_COOKIE_POPUP_TIME = 2592000000; //30 DIAS (DEF)\n\t\n\tvar app = Voonto.getInstance();\n\tvar vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\n\t\n\tvar savedData = false;\n\t\n\tfunction getTimeoutPopup($btn) {\n\t switch ($btn) {\n\t case 'starred':\n\t return POPUP_TIMEOUT_STARRED;\n\t break;\n\t case 'following':\n\t return POPUP_TIMEOUT_FOLLOWING;\n\t break;\n\t case 'event':\n\t return POPUP_TIMEOUT_EVENT;\n\t break;\n\t case 'contest':\n\t return POPUP_TIMEOUT_CONTEST;\n\t break;\n\t case 'new-comment':\n\t return POPUP_TIMEOUT_CREATE_COMMENT;\n\t break;\n\t case 'like-comment':\n\t return POPUP_TIMEOUT_LIKE_COMMENT;\n\t break;\n\t case 'opinion':\n\t return POPUP_TIMEOUT_OPINION;\n\t break;\n\t case 'register':\n\t return POPUP_TIMEOUT_REGISTER;\n\t break;\n\t default:\n\t return POPUP_TIMEOUT_LOGIN;\n\t break;\n\t }\n\t}\n\t\n\tfunction parseUrl(url) {\n\t var parser = document.createElement('a');\n\t parser.href = url;\n\t return {\n\t protocol: parser.protocol,\n\t host: parser.host,\n\t hostname: parser.hostname,\n\t port: parser.port,\n\t pathname: parser.pathname,\n\t hash: parser.hash,\n\t search: parser.search,\n\t origin: parser.origin\n\t };\n\t}\n\t\n\tfunction createCSData($elm) {\n\t Logger.debug('[post-script] createCSData - $elm >> ' + $elm.data('btn'));\n\t var serviceId = '';\n\t var serviceReference = '';\n\t var url = parseUrl(document.location.href);\n\t var pathname = url.pathname;\n\t var section = '';\n\t var host = location.host;\n\t // (host == 'abcblogsv2.abc.es' || host == 'pre-abcblogsv2.abc.es')\n\t if (pathname == '' || pathname == '/') {\n\t section = \"home\";\n\t } else if (host.match(/abcblogsv2/gi)) {\n\t section = 'blogs';\n\t } else {\n\t var res = pathname.split(\"/\");\n\t section = res[1];\n\t }\n\t if ($elm.data('btn') === 'starred') {\n\t serviceId = '190';\n\t serviceReference = section;\n\t } else if ($elm.data('btn') === 'following') {\n\t serviceId = '195';\n\t if (section === 'play') {\n\t serviceReference = $elm.parent().find('.nombre a').attr('title');\n\t } else {\n\t serviceReference = $elm.parent().find('.autor').attr('title');\n\t }\n\t Logger.debug('[post-script] createCSData - serviceReference >> ' + serviceReference);\n\t if ('undefined' === typeof serviceReference) {\n\t var vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\n\t Logger.debug('[post-script] createCSData - vocUserNotificationsPath >> ' + vocUserNotificationsPath);\n\t Logger.debug('[post-script] createCSData - section >> ' + section);\n\t if (vocUserNotificationsPath !== undefined) {\n\t serviceReference = section;\n\t }\n\t }\n\t Logger.debug('[post-script] createCSData - serviceReference >> ' + serviceReference);\n\t serviceReference = serviceReference.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g, \"\").replace(/ /g, \"_\");\n\t }\n\t return {\n\t serviceId: serviceId,\n\t serviceReference: serviceReference\n\t };\n\t}\n\t\n\tfunction getInitialText($btn) {\n\t var initialText = \"Queremos conocerte\";\n\t switch ($btn) {\n\t case 'starred':\n\t initialText = 'Has guardado el artículo correctamente, ahora queremos conocerte mejor';\n\t break;\n\t case 'following':\n\t initialText = 'Nos complace saber que sigues a nuestros autores, ahora queremos conocerte mejor';\n\t break;\n\t case 'event':\n\t initialText = 'Ya estás apuntado para el evento, ahora queremos conocerte mejor';\n\t break;\n\t case 'contest':\n\t initialText = 'Ya estás participando en el concurso, ahora queremos conocerte mejor';\n\t break;\n\t case 'new-comment':\n\t initialText = 'Tu comentario se ha publicado correctamente, ahora nos gustaría conocerte mejor';\n\t break;\n\t case 'like-comment':\n\t initialText = 'Tu valoración del comentario se ha guardado correctamente, ahora nos gustaría conocerte mejor';\n\t break;\n\t case 'opinion':\n\t initialText = 'Queremos conocerte';\n\t break;\n\t }\n\t $('.popup_info').find('.textevent').text(initialText);\n\t}\n\t\n\tfunction createPopupCookie($elm) {\n\t var expires = new Date();\n\t expires.setTime(expires.getTime() + EXPIRE_COOKIE_POPUP_TIME);\n\t var cookie = \"check_interests=\" + $elm.data('btn') + \";expires=\" + expires.toUTCString() + \";path=/\";\n\t Logger.debug(\"[cookie popup creada]\");\n\t return document.cookie = cookie;\n\t}\n\t\n\tfunction getUserDataText($arrayNames) {\n\t var fieldText = '';\n\t var nameAux = '';\n\t for (var i = 0; i < $arrayNames.length; i++) {\n\t nameAux = $arrayNames[i] == 'edad' ? 'fecha de nacimiento' : $arrayNames[i];\n\t if (i == 0) {\n\t fieldText = nameAux;\n\t } else if (i == $arrayNames.length - 1) {\n\t fieldText = fieldText + ' y ' + nameAux;\n\t } else {\n\t fieldText = fieldText + ', ' + nameAux;\n\t }\n\t }\n\t $('.popup_user_data').find('.fieldstext').text('Por favor ¿Nos puedes facilitar tu ' + fieldText + '?');\n\t}\n\t\n\tfunction checkUserData($elm, baseurl) {\n\t\n\t var btn = $elm.data('btn');\n\t\n\t var fields = {};\n\t\n\t $('.popup_additional_data').find('select').each(function () {\n\t if (!fields.hasOwnProperty($(this).attr('name').split('.')[0])) {\n\t fields[$(this).attr('name').split('.')[0]] = [];\n\t }\n\t fields[$(this).attr('name').split('.')[0]].push($(this).attr('name').split('.')[1]);\n\t });\n\t\n\t // Logger.debug('[listado fields]', fields);\n\t\n\t Voonto.$.ajax({\n\t url: baseurl + 'fields/show',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('show fields module: retrieve ' + btn + ' error ', textStatus);\n\t return null;\n\t }).done(function (response) {\n\t\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t var user = response.user;\n\t var countShow = 0;\n\t $('.popup_user_data').hide();\n\t $('.popup_user_data').removeClass('next_popup');\n\t $('.popup_user_data div').hide();\n\t $('.popup_user_data').find('div').each(function () {\n\t $(this).removeClass('next_field');\n\t });\n\t $('.popup_user_data').find('select').each(function () {\n\t $(this).attr('required', false);\n\t });\n\t $('.popup_user_interests').hide();\n\t $('.popup_user_interests').removeClass('next_popup');\n\t var arrayNames = [];\n\t Object.keys(fields).forEach(function (key) {\n\t var field = fields[key];\n\t Object.keys(field).forEach(function (i) {\n\t if (key == 'profile' && (field[i] == 'birthDay' || field[i] == 'birthMonth' || field[i] == 'birthYear')) {\n\t var currentDate = new Date();\n\t if (parseInt(user[key]['birthYear']) > parseInt(currentDate.getFullYear()) - 13 || user[key]['birthDay'] === undefined || user[key]['birthMonth'] === undefined || user[key]['birthYear'] === undefined) {\n\t $('.popup_user_data .popup_' + field[i]).addClass('next_field');\n\t $('.popup_user_data .popup_' + field[i]).find('select').each(function () {\n\t if (user[key]['birthDay'] !== undefined) {\n\t $('.popup_birthDay').find('.birthday').val(user[key]['birthDay'].length < 2 ? \"0\" + user[key]['birthDay'] : user[key]['birthDay']).change();\n\t }\n\t if (user[key]['birthMonth'] !== undefined) {\n\t $('.popup_birthDay').find('.birthmonth').val(user[key]['birthMonth'].length < 2 ? \"0\" + user[key]['birthMonth'] : user[key]['birthMonth']).change();\n\t }\n\t if (parseInt(user[key]['birthYear']) <= parseInt(currentDate.getFullYear()) - 13 && user[key]['birthYear'] !== undefined) {\n\t $('.popup_birthDay').find('.birthyear').val(user[key]['birthYear']).change();\n\t }\n\t });\n\t countShow = countShow + 1;\n\t if (field[i] == 'birthDay') {\n\t var nameField = $('.popup_user_data .popup_' + field[i]).find('label').attr('class').split('_')[1];\n\t if (arrayNames.indexOf(nameField) == -1) {\n\t arrayNames.push(nameField);\n\t }\n\t }\n\t }\n\t } else {\n\t if (user[key][field[i]] === undefined || user[key][field[i]] === 'u') {\n\t $('.popup_user_data .popup_' + field[i]).addClass('next_field');\n\t countShow = countShow + 1;\n\t arrayNames.push($('.popup_user_data .popup_' + field[i]).find('label').attr('class').split('_')[1]);\n\t }\n\t }\n\t });\n\t });\n\t\n\t var username = user['profile']['firstName'] === undefined ? user['profile']['nickname'] : user['profile']['firstName'];\n\t $('.popup_info .username').text(username);\n\t getInitialText(btn);\n\t getUserDataText(arrayNames);\n\t $('.popup_info').addClass('current_popup');\n\t $('.popup_info').show();\n\t if (countShow > 0) {\n\t $('.popup_additional_data').find('.popup_user_data').addClass('next_popup');\n\t } else {\n\t $('.popup_additional_data').find('.popup_user_interests').addClass('next_popup');\n\t }\n\t $('.popup_additional_data').show();\n\t }\n\t });\n\t}\n\t\n\tfunction updateAdditionalData(baseurl) {\n\t\n\t var newfields = {};\n\t\n\t $('.popup_additional_data').find('.next_field select').each(function () {\n\t if ($(this).val() != '') {\n\t if (!newfields.hasOwnProperty($(this).attr('name').split('.')[0])) {\n\t newfields[$(this).attr('name').split('.')[0]] = {};\n\t }\n\t newfields[$(this).attr('name').split('.')[0]][$(this).attr('name').split('.')[1]] = $(this).val();\n\t }\n\t });\n\t\n\t $('.popup_additional_data').find('.next_field select.birthday').attr('required', false);\n\t if ($('.popup_additional_data').find('select.birthday').hasClass('next_field')) {\n\t $('.popup_additional_data').find('.next_field select.birthday')[0].setCustomValidity('');\n\t }\n\t $('.popup_additional_data').find('.next_field select.birthmonth').attr('required', false);\n\t $('.popup_additional_data').find('.next_field select.birthyear').attr('required', false);\n\t\n\t if ($('.popup_additional_data').find('.next_field').hasClass('popup_birthDay') && ($('.popup_additional_data').find('.next_field select.birthday').val() != '' || $('.popup_additional_data').find('.next_field select.birthmonth').val() != '' || $('.popup_additional_data').find('.next_field select.birthyear').val() != '')) {\n\t if ($('.popup_additional_data').find('.next_field select.birthday').val() == '' || $('.popup_additional_data').find('.next_field select.birthmonth').val() == '' || $('.popup_additional_data').find('.next_field select.birthyear').val() == '') {\n\t $('.popup_additional_data').find('.next_field select.birthday').attr('required', 'required');\n\t $('.popup_additional_data').find('.next_field select.birthmonth').attr('required', 'required');\n\t $('.popup_additional_data').find('.next_field select.birthyear').attr('required', 'required');\n\t $(\".popup_user_data #form_fields\")[0].reportValidity();\n\t return;\n\t } else {\n\t var date = $('.popup_additional_data').find('.next_field select.birthday').val() + '-' + $('.popup_additional_data').find('.next_field select.birthmonth').val() + '-' + $('.popup_additional_data').find('.next_field select.birthyear').val();\n\t if (!isValidDate(date)) {\n\t $('.popup_additional_data').find('.next_field select.birthday')[0].setCustomValidity(\"Revisa los elementos de la fecha\");\n\t $(\".popup_user_data #form_fields\")[0].reportValidity();\n\t return;\n\t }\n\t }\n\t }\n\t\n\t if (Object.keys(newfields).length > 0) {\n\t\n\t var data = { 'fields': newfields };\n\t\n\t $.ajax({\n\t type: 'post',\n\t url: baseurl + 'fields/update',\n\t data: data,\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('additionaldata module update fields error: ', textStatus);\n\t }).done(function (response) {\n\t savedData = true;\n\t getUserInterests();\n\t Logger.debug('[actualizar datos]', response);\n\t });\n\t } else {\n\t getUserInterests();\n\t }\n\t}\n\t\n\tfunction isValidDate(s) {\n\t // format D(D)/M(M)/(YY)YY\n\t var dateFormat = /^\\d{1,4}[\\.|\\/|-]\\d{1,2}[\\.|\\/|-]\\d{1,4}$/;\n\t\n\t if (dateFormat.test(s)) {\n\t // remove any leading zeros from date values\n\t s = s.replace(/0*(\\d*)/gi, \"$1\");\n\t var dateArray = s.split(/[\\.|\\/|-]/);\n\t\n\t // correct month value\n\t dateArray[1] = dateArray[1] - 1;\n\t\n\t // correct year value\n\t if (dateArray[2].length < 4) {\n\t // correct year value\n\t dateArray[2] = parseInt(dateArray[2]) < 50 ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]);\n\t }\n\t\n\t var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]);\n\t if (testDate.getDate() != dateArray[0] || testDate.getMonth() != dateArray[1] || testDate.getFullYear() != dateArray[2]) {\n\t return false;\n\t } else {\n\t return true;\n\t }\n\t } else {\n\t return false;\n\t }\n\t}\n\t\n\tfunction checkUserInterests($elm, baseurl) {\n\t\n\t Logger.info('additionaldata module interests');\n\t\n\t var btn = $elm.data('btn');\n\t\n\t Voonto.$.ajax({\n\t url: baseurl + 'interests/check',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('show interests module: retrieve ' + btn + ' error ', textStatus);\n\t return null;\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t if (!response.hasinterests) {\n\t if (response.interestslist.length > 0) {\n\t $('.popup_user_interests #form_interests').html('');\n\t for (var i = 0; i < response.interestslist.length; i++) {\n\t var elem = response.interestslist[i];\n\t var code = elem['code'];\n\t $('.popup_user_interests #form_interests').append('');\n\t if (code.substr(0, code.indexOf('.000')) + '.000' == code) {\n\t $('.popup_user_interests #form_interests').append('');\n\t } else if (elem.name != '') {\n\t $('.popup_user_interests #form_interests').append('');\n\t } else {\n\t $('.popup_user_interests #form_interests').append('');\n\t }\n\t }\n\t }\n\t $('.popup_user_interests #form_interests').find('input[type=\"checkbox\"]').on('click', handleCheckedInterestsClick);\n\t createPopupCookie($elm);\n\t if (document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)) {\n\t checkUserData($elm, baseurl);\n\t }\n\t }\n\t }\n\t });\n\t}\n\t\n\tfunction handleCheckedInterestsClick() {\n\t var attr = $(this).attr('checked');\n\t if ((typeof attr === 'undefined' ? 'undefined' : _typeof(attr)) !== ( true ? 'undefined' : _typeof(undefined)) && attr !== false) {\n\t $(this).removeAttr('checked');\n\t } else {\n\t $(this).attr('checked', 'checked');\n\t }\n\t}\n\t\n\tfunction getUserInterests() {\n\t var currentcontainer = Voonto.$('.popup_user_interests');\n\t var oldnextcontainer = Voonto.$('.popup_additional_data').find('.current_popup');\n\t oldnextcontainer.hide();\n\t oldnextcontainer.removeClass('current_popup');\n\t currentcontainer.addClass('current_popup');\n\t currentcontainer.show();\n\t}\n\t\n\tfunction updateUserInterests(baseurl) {\n\t Logger.info('additionaldata module interests update');\n\t\n\t var interests = [];\n\t\n\t $('.popup_additional_data .popup_user_interests').find('input[type=\"checkbox\"]').each(function () {\n\t var attr = $(this).attr('checked');\n\t if ((typeof attr === 'undefined' ? 'undefined' : _typeof(attr)) !== ( true ? 'undefined' : _typeof(undefined)) && attr !== false) {\n\t var interest = {};\n\t interest['ID'] = $(this).attr('id');\n\t interest['type'] = 'manual';\n\t interest['status'] = (typeof attr === 'undefined' ? 'undefined' : _typeof(attr)) !== ( true ? 'undefined' : _typeof(undefined)) && attr !== false ? true : false;\n\t interests.push(interest);\n\t }\n\t });\n\t\n\t // Logger.debug('interests checked: ', interests);\n\t\n\t if (interests.length > 0) {\n\t var data = { 'interests': interests };\n\t\n\t $.ajax({\n\t type: 'post',\n\t url: baseurl + 'interests/update',\n\t data: data,\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('additionaldata module update interests error: ', textStatus);\n\t var currentContainer = $('.popup_user_interests');\n\t currentContainer.hide();\n\t currentContainer.removeClass('current_popup');\n\t $('.popup_result').addClass('current_popup');\n\t $('.popup_result p.p1').html('¡Ha ocurrido un error!');\n\t $('.popup_result p.p2').text('Por favor, intentalo más tarde');\n\t $('.popup_result p.p2').show();\n\t $('.popup_result').show();\n\t }).done(function (response) {\n\t Logger.debug('additionaldata module update', response);\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('additionaldata module update ok', response);\n\t }\n\t var currentContainer = $('.popup_user_interests');\n\t currentContainer.hide();\n\t currentContainer.removeClass('current_popup');\n\t $('.popup_result').addClass('current_popup');\n\t $('.popup_result p.p1').html('¡Intereses guardados con éxito!');\n\t $('.popup_result p.p2').text('A partir de ahora, en ABC.es encontrarás información más personalizada según tus preferencias');\n\t $('.popup_result p.p2').show();\n\t $('.popup_result').show();\n\t });\n\t } else {\n\t var currentContainer = $('.popup_user_interests');\n\t currentContainer.hide();\n\t currentContainer.removeClass('current_popup');\n\t $('.popup_result').addClass('current_popup');\n\t if (savedData) {\n\t $('.popup_result p.p1').html('¡Perfil actualizado con éxito!');\n\t $('.popup_result p.p2').text('Podrás seguir completando la información de tu perfil e indicando tus intereses favoritos más adelante en tu Área de Usuario en ABC.es');\n\t $('.popup_result p.p2').show();\n\t } else {\n\t $('.popup_result p.p1').text('Podrás seguir completando la información de tu perfil e indicando tus intereses favoritos más adelante en tu Área de Usuario en ABC.es');\n\t $('.popup_result p.p2').text('');\n\t $('.popup_result p.p2').hide();\n\t }\n\t $('.popup_result').show();\n\t }\n\t}\n\t\n\tfunction checkInterest() {\n\t Logger.debug('check interest request');\n\t var urlReferer = document.referrer;\n\t var baseurl = '/ajax/v2/api/v1/';\n\t if (vocUserNotificationsPath !== undefined) {\n\t baseurl = vocUserNotificationsPath + baseurl;\n\t }\n\t Logger.debug('[post-script] baseurl: ' + baseurl);\n\t\n\t var timeoutPopupAddData = 0;\n\t if (urlReferer.includes(\"registro/validacion-mail.html\")) {\n\t var originRegister = window.location.href;\n\t var originText = 'register';\n\t if (originRegister.includes(\"/opinion/\") && originRegister.includes(\".html\")) {\n\t originText = 'opinion';\n\t }\n\t timeoutPopupAddData = getTimeoutPopup(originText);\n\t setTimeout(function () {\n\t if (!document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)) {\n\t var $elm = $('.gigya-registration-link').attr('data-btn', originText);\n\t Logger.debug('[additionaldata_popup desde registro]');\n\t checkUserInterests($elm, baseurl);\n\t }\n\t }, timeoutPopupAddData);\n\t } else {\n\t var originLogin = window.location.href;\n\t Logger.debug('[post-script] Origin login: ' + originLogin);\n\t if (!originLogin.includes(\"/micuenta/\")) {\n\t timeoutPopupAddData = getTimeoutPopup('login');\n\t setTimeout(function () {\n\t if (!document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)) {\n\t var $elm = $('.gigya-login-link').attr('data-btn', 'login');\n\t Logger.debug('[additionaldata_popup desde login]');\n\t checkUserInterests($elm, baseurl);\n\t }\n\t }, timeoutPopupAddData);\n\t }\n\t }\n\t}\n\t\n\tfunction updatedUserInfo() {\n\t return savedData;\n\t}\n\t\n\t/* Podemos Cargar esta en el scrip gigya.js y hacer un export/import */\n\tfunction actionCustomService(action, event, id, section) {\n\t var app = Voonto.getInstance();\n\t app.when('vocuser:ready').then(function (gigyaUX) {\n\t if (typeof gigyaUX !== 'undefined') {\n\t if ('update' === action) {\n\t gigyaUX.updateCustomerServiceInCookieVocUser(id, section);\n\t Logger.debug('[actionCS] CS Update id: ' + id + ', seccion: ' + section);\n\t if ('login' === event) {\n\t gigyaUX.showLogin();\n\t } else if ('registro' === event) {\n\t gigyaUX.showRegistration();\n\t }\n\t } else if ('send' === action) {\n\t gigyaUX.sendCustomerService(id, section).done(function () {\n\t Logger.debug('[actionCS] CS enviado id: ' + id + ', seccion: ' + section);\n\t });\n\t }\n\t }\n\t });\n\t}\n\n/***/ }),\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/* globals vocento, noticiaid */\n\tvar app = Voonto.getInstance();\n\t\n\tvar TeInteresa = function () {\n\t\tfunction TeInteresa(form) {\n\t\t\t_classCallCheck(this, TeInteresa);\n\t\n\t\t\tthis.libPath = app.lookup('vocento.config.nibara').libPath;\n\t\t\tif (this.libPath === undefined) {\n\t\t\t\tthrow 'nibara libPath config is empty';\n\t\t\t}\n\t\t\tthis.isMobile = Voonto.is.mobile();\n\t\t\tthis.isTablet = Voonto.is.tablet();\n\t\t}\n\t\n\t\t_createClass(TeInteresa, [{\n\t\t\tkey: 'load',\n\t\t\tvalue: function load($container) {\n\t\t\t\tvar _this = this;\n\t\n\t\t\t\tvar comscore = app.lookup('vocento.tracking.comscore');\n\t\t\t\tvar tc = comscore.voc_tcnew ? comscore.voc_tc : null;\n\t\t\t\tvar se = comscore.voc_se;\n\t\t\t\tif (typeof noticiaid === 'undefined' || !noticiaid || !tc || !se) {\n\t\t\t\t\tLogger.error('No se puede cargar te-interesa');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\n\t\t\t\tvar url = \"/ajax/v2/te-interesa.html?recid=\" + noticiaid + \"&voc_tc=\" + tc + \"&voc_se=\" + se;\n\t\t\t\tVoonto.$.ajax({\n\t\t\t\t\t\"type\": \"get\",\n\t\t\t\t\t\"url\": url,\n\t\t\t\t\t\"timeout\": 20000\n\t\t\t\t}).fail(function () {\n\t\t\t\t\tLogger.error('No se puede cargar te-interesa');\n\t\t\t\t\t_this.mobileShowToolbar();\n\t\t\t\t}).done(function (html) {\n\t\t\t\t\tif (html) {\n\t\t\t\t\t\t_this.mobileHideToolbar();\n\t\n\t\t\t\t\t\t$container.html(html);\n\t\t\t\t\t\t_this.swiper($container.find('.swiper-container'));\n\t\n\t\t\t\t\t\t_this.mobileEvents($container);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this.mobileShowToolbar();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobileShowToolbar',\n\t\t\tvalue: function mobileShowToolbar() {\n\t\t\t\tif (this.isMobile && Voonto.SocialToolbar) {\n\t\t\t\t\tVoonto.SocialToolbar.enable();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobileHideToolbar',\n\t\t\tvalue: function mobileHideToolbar() {\n\t\t\t\tif (this.isMobile && Voonto.SocialToolbar) {\n\t\t\t\t\tVoonto.SocialToolbar.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'mobileEvents',\n\t\t\tvalue: function mobileEvents($container) {\n\t\t\t\tvar _this2 = this;\n\t\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\tthis.mobileHideToolbar();\n\t\t\t\t\t$container.find('.cerrar').click(function () {\n\t\t\t\t\t\t$container.hide();\n\t\t\t\t\t\t_this2.mobileShowToolbar();\n\t\t\t\t\t});\n\t\n\t\t\t\t\tVoonto.$('.noticia').click(function () {\n\t\t\t\t\t\tLogger.info('[Breaking News] click Te-Interesa');\n\t\t\t\t\t\tvar type = Voonto.$(this).data('type');\n\t\n\t\t\t\t\t\tLogger.info('[Breaking News] type: ', type);\n\t\t\t\t\t\tLogger.info('[Breaking News] href: ', Voonto.$(this).data('href'));\n\t\n\t\t\t\t\t\twindow.location.href = Voonto.$(this).data('href');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'swiper',\n\t\t\tvalue: function swiper($elm) {\n\t\t\t\tvar _this3 = this;\n\t\n\t\t\t\tLogger.info('Te-Interesa: Cargado JQuery-UI');\n\t\t\t\t$elm.find('.swiper-prev-row-bn').css('zIndex', 99);\n\t\t\t\t$elm.find('.swiper-next-row-bn').css('zIndex', 99);\n\t\t\t\t$elm.find('.swiper-wrapper').attr('style', 'min-height: 1px !important;');\n\t\n\t\t\t\tvar numElem = 0;\n\t\t\t\t$elm.find(\"[id^='j-swiper-slide-']\").each(function () {\n\t\t\t\t\tnumElem++;\n\t\t\t\t});\n\t\t\t\tLogger.info('Te-Interesa: Número elementos: ' + numElem);\n\t\n\t\t\t\tvar IntID = this.setTimer(numElem, $elm);\n\t\n\t\t\t\t$elm.find('.swiper-prev-row-bn').on('click', function () {\n\t\t\t\t\tLogger.info('Te-Interesa: Noticia anterior');\n\t\t\t\t\tclearInterval(IntID);\n\t\t\t\t\tIntID = _this3.setTimer(numElem, $elm);\n\t\t\t\t\t_this3.changeSlide('anterior', numElem, $elm);\n\t\t\t\t});\n\t\n\t\t\t\t$elm.find('.swiper-next-row-bn').on('click', function () {\n\t\t\t\t\tLogger.info('Te-Interesa: Noticia siguiente');\n\t\t\t\t\tclearInterval(IntID);\n\t\t\t\t\tIntID = _this3.setTimer(numElem, $elm);\n\t\t\t\t\t_this3.changeSlide('siguiente', numElem, $elm);\n\t\t\t\t});\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'setTimer',\n\t\t\tvalue: function setTimer(numElem, $elm) {\n\t\t\t\tvar _this4 = this;\n\t\n\t\t\t\tvar i = setInterval(function () {\n\t\t\t\t\tLogger.info('Te-Interesa: setInterval - Noticia siguiente');\n\t\t\t\t\t_this4.changeSlide('interval', numElem, $elm);\n\t\t\t\t}, 7000); // 7000ms = 7 segartSlider, 4000);\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'changeSlide',\n\t\t\tvalue: function changeSlide(action, numElem, $elm) {\n\t\t\t\tvar id = Voonto.$(\"[id^='j-swiper-slide-']:visible\").data('pos');\n\t\t\t\tLogger.info('Te-Interesa: ID Visible: ' + id);\n\t\n\t\t\t\tvar newId = id - 1;\n\t\t\t\tif (action === 'anterior') {\n\t\t\t\t\tif (id <= 1) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnewId = id + 1;\n\t\t\t\t\tif (action === 'interval') {\n\t\t\t\t\t\tif (id === numElem) {\n\t\t\t\t\t\t\tnewId = 1;\n\t\t\t\t\t\t\tid = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (id >= numElem) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t$elm.find(\"[id^='j-swiper-slide-']\").each(function (i, e) {\n\t\t\t\t\tif (newId === Voonto.$(e).data('pos')) {\n\t\t\t\t\t\tVoonto.$(e).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tVoonto.$(e).hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}]);\n\t\n\t\treturn TeInteresa;\n\t}();\n\t\n\texports.default = TeInteresa;\n\n/***/ }),\n/* 6 */,\n/* 7 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/*\n\t * Función para depurar posiciones de publicidad\n\t */\n\t\n\tfunction debugVam($elm) {\n\t $elm.each(function (i, v) {\n\t try {\n\t var $v = Voonto.$(v);\n\t if ($v.data('debugVam')) {\n\t return;\n\t }\n\t\n\t $v.data('debugVam', 1);\n\t var media = window.vocento.config.vam.media;\n\t var posiciones = void 0;\n\t if (Voonto.is.mobile()) posiciones = media.posicion_mobile;else {\n\t posiciones = media.posicion_desktop;\n\t }\n\t\n\t var position = v.getAttribute('data-voc-vam-position');\n\t $v.html(position);\n\t if (!$v.attr('id')) {\n\t $v.attr('id', position + '-id');\n\t }\n\t var posicion = posiciones[position];\n\t //Logger.debug(`[vam-debug] position: ${position}`, posicion);\n\t if (position && posicion && posicion.dimensiones) {\n\t var dims = JSON.parse(posicion.dimensiones);\n\t var minDim = null;\n\t var maxWidth = $(window).width();\n\t var minHeight = 2000;\n\t for (var _i = dims.length - 1; _i >= 0; _i--) {\n\t if (maxWidth > dims[_i][0] && minHeight > dims[_i][1]) {\n\t minDim = dims[_i];\n\t minHeight = dims[_i][1];\n\t }\n\t }\n\t if (minDim) {\n\t //Logger.debug(`[vam-debug] position: ${position} - ${width}x${height}`, posicion);\n\t $v.css({\n\t \"width\": minDim[0] + \"px\", \"height\": minDim[1] + \"px\",\n\t \"background-color\": \"cyan\", \"text-align\": \"center\",\n\t \"padding-top\": \"25px\", \"display\": \"block\"\n\t });\n\t }\n\t }\n\t } catch (ex) {\n\t Logger.error('[vam-debug] exception:', v, ex);\n\t }\n\t });\n\t setTimeout(function () {\n\t $elm.trigger('vam:slotrendered');\n\t }, 3000);\n\t}\n\t\n\tfunction initVamDebug(app) {\n\t debugVam(Voonto.$('[data-voc-vam]'));\n\t app.on('voonto:reload', function (ev, elm) {\n\t try {\n\t debugVam(Voonto.$(elm).find('[data-voc-vam]'));\n\t } catch (ex) {\n\t Logger.error('[vam-debug] exception:', ex);\n\t }\n\t });\n\t}\n\t\n\texports.default = initVamDebug;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\texports.checkPushStatus = checkPushStatus;\n\texports.subscribeToChannels = subscribeToChannels;\n\tfunction getPushStatusChecker(url, cb) {\n\t\n\t var id = \"pushStatusChecker\";\n\t var psc = document.querySelector(\"#\" + id);\n\t if (psc) {\n\t return cb(psc);\n\t }\n\t\n\t psc = document.createElement(\"iframe\");\n\t psc.src = url;\n\t psc.id = id;\n\t psc.style.display = \"none\";\n\t document.body.appendChild(psc);\n\t setTimeout(function () {\n\t cb(psc);\n\t }, 2000);\n\t setTimeout(function () {\n\t psc.parentNode.removeChild(psc);\n\t }, 4000);\n\t}\n\t\n\tfunction checkPushStatus(url, cb) {\n\t\n\t getPushStatusChecker(url, function (psc) {\n\t\n\t var prevHandler = window.onmessage;\n\t var response = void 0;\n\t window.onmessage = function (e) {\n\t if (_typeof(e.data) === \"object\") {\n\t response = Object.assign({}, e.data);\n\t } else {\n\t response = {\n\t permission: false\n\t };\n\t }\n\t window.onmessage = prevHandler;\n\t cb(response);\n\t };\n\t psc.contentWindow.postMessage(\"checkPushStatus\", \"*\");\n\t });\n\t}\n\t\n\tfunction subscribeToChannels(channels, success, error) {\n\t success = typeof success == 'function' ? success : function () {};\n\t error = typeof error == 'function' ? error : function () {};\n\t navigator.indigitall.subscribe(channels, success, error);\n\t}\n\t\n\tfunction success(success) {\n\t Logger.debug(success);\n\t}\n\t\n\tfunction error(error) {\n\t Logger.debug(error);\n\t}\n\n/***/ }),\n/* 9 */,\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar trackUtils = __webpack_require__(11);\n\t\n\tvar SectionLoadUtils = function () {\n\t function SectionLoadUtils() {\n\t _classCallCheck(this, SectionLoadUtils);\n\t }\n\t\n\t _createClass(SectionLoadUtils, null, [{\n\t key: 'changeUrl',\n\t\n\t\n\t /**\n\t * Only modify current url to section\n\t * @param $elm\n\t */\n\t value: function changeUrl($elm) {\n\t var section = $elm.data('section');\n\t var segment = '';\n\t if (section === 'main') {\n\t segment = '/';\n\t } else {\n\t segment = $elm.data('section-url');\n\t }\n\t segment += window.location.search + window.location.hash;\n\t\n\t history.replaceState({ \"section\": section }, section, segment);\n\t }\n\t\n\t /**\n\t * Change section name in header\n\t * @param $elm\n\t */\n\t\n\t }, {\n\t key: 'changeSectionName',\n\t value: function changeSectionName($elm) {\n\t Logger.info('[Header][Sticky] Change section name');\n\t if (Voonto.is.mobile() === true) {\n\t var $stickySectionName = Voonto.$('.cabecera-sticky .nombre-seccion>a');\n\t var nsChannel = window.vocento.tracking.comscore.voc_site;\n\t var nsLinkname = window.vocento.tracking.comscore.voc_se;\n\t var trackingMark = '#ns_campaign=logo-seccion&ns_mchannel=' + nsChannel + '&ns_source=portada.portada&ns_linkname=' + nsLinkname + '&ns_fee=0';\n\t\n\t if ($elm.data('section') === 'main') {\n\t $stickySectionName.attr(\"href\", '/' + trackingMark);\n\t $stickySectionName.text('Portada');\n\t } else {\n\t $stickySectionName.attr(\"href\", $elm.data('section-url') + trackingMark);\n\t $stickySectionName.text($elm.data('section-name'));\n\t }\n\t } else {\n\t var _nsChannel = window.vocento.tracking.comscore.voc_site;\n\t\n\t var _nsLinkname = window.vocento.tracking.comscore.voc_se;\n\t if ($elm.data('section') === 'main') {\n\t if (window.vocento.tracking.comscore.voc_s1.length > 0) {\n\t _nsLinkname = _nsLinkname + '.' + window.vocento.tracking.comscore.voc_s1;\n\t }\n\t } else {\n\t _nsLinkname = $elm.data('tracking').comscore.voc_se;\n\t if ($elm.data('tracking').comscore.voc_s1.length > 0) {\n\t _nsLinkname = _nsLinkname + '.' + $elm.data('tracking').comscore.voc_s1;\n\t }\n\t }\n\t\n\t var _trackingMark = '#ns_campaign=logo-seccion&ns_mchannel=' + _nsChannel + '&ns_source=portada.portada&ns_linkname=' + _nsLinkname + '&ns_fee=0';\n\t\n\t var _$stickySectionName = Voonto.$('.cabecera-sticky .titulo-seccion>a');\n\t if ($elm.data('section') === 'main') {\n\t _$stickySectionName.attr(\"href\", '/' + _trackingMark);\n\t _$stickySectionName.text('Portada');\n\t } else {\n\t _$stickySectionName.attr(\"href\", $elm.data('section-url') + _trackingMark);\n\t _$stickySectionName.text($elm.data('section-name'));\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Unbind click on section title an bind on with last section\n\t * @param $elm\n\t */\n\t\n\t }, {\n\t key: 'onClickSectionName',\n\t value: function onClickSectionName($elm) {\n\t if (Voonto.is.desktop()) {\n\t var $sectionName = $('.cabecera-sticky > span > .titulo-seccion');\n\t $sectionName.off('click');\n\t $sectionName.on('click', function () {\n\t history.replaceState({ section: 'main', lastSectionView: $elm.data('section') }, 'main', '/' + window.location.search);\n\t });\n\t } else if (Voonto.is.mobile()) {\n\t var _$sectionName = $('.nombre-seccion');\n\t _$sectionName.off('click');\n\t _$sectionName.on('click', function () {\n\t history.replaceState({ section: 'main', lastSectionView: $elm.data('section') }, 'main', '/' + window.location.search);\n\t });\n\t }\n\t }\n\t\n\t /**\n\t * Listen all click events to replace history\n\t * @param $elm\n\t */\n\t\n\t }, {\n\t key: 'onClickSetHistoryHome',\n\t value: function onClickSetHistoryHome($elm) {\n\t $elm.find('a').on('click', function () {\n\t var $link = Voonto.$(this);\n\t var target = $link.attr('target');\n\t if (target && target !== '_self') {\n\t return;\n\t }\n\t\n\t var lastSectionView = 'main';\n\t var $parent = $link.closest(\"[data-section]\");\n\t if ($parent) {\n\t lastSectionView = $parent.data('section');\n\t }\n\t history.replaceState({ section: 'main', lastSectionView: lastSectionView }, 'main', '/' + window.location.search);\n\t });\n\t }\n\t }, {\n\t key: 'onClickTerrazaHome',\n\t value: function onClickTerrazaHome($elm) {\n\t $elm.find('a').on('click', function () {\n\t var $link = Voonto.$(this);\n\t var target = $link.attr('target');\n\t if (target && target !== '_self') {\n\t return;\n\t }\n\t\n\t var lastSectionView = 'main';\n\t var $prev = $link.parentsUntil('main').last().prev(\"[data-section]\");\n\t if ($prev) {\n\t lastSectionView = $prev.data('section');\n\t }\n\t\n\t history.replaceState({ section: 'main', lastSectionView: lastSectionView }, 'main', '/' + window.location.search);\n\t });\n\t }\n\t }, {\n\t key: 'onClickSectionMenu',\n\t value: function onClickSectionMenu($elm) {\n\t $elm.on('click', function () {\n\t $elm.next().slideToggle();\n\t });\n\t\n\t $elm.on('click', function () {\n\t var tipoAnimacion = $elm.data('boton-animado');\n\t Logger.info('tipoAnimacion ' + tipoAnimacion);\n\t switch (tipoAnimacion) {\n\t case 'menu':\n\t $elm.toggleClass('abierto');\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'onClickMainHome',\n\t value: function onClickMainHome($elm) {\n\t $elm.find('a').on('click', function () {\n\t window.scrollTo(0, 0);\n\t location.reload();\n\t });\n\t }\n\t\n\t /** populate vars into global scope and track with vtm */\n\t\n\t }, {\n\t key: 'tracking',\n\t value: function tracking($elm) {\n\t try {\n\t var tracking = null;\n\t\n\t /** if is section, get tracking from data */\n\t if ($elm.data('section') !== 'main' && typeof $elm.data('tracking') !== 'undefined') {\n\t tracking = $elm.data('tracking');\n\t }\n\t\n\t /** if is main section, get data from main object */\n\t if ($elm.data('section') === 'main') {\n\t tracking = window.vocento.tracking;\n\t }\n\t\n\t Logger.info('Tracking section: ' + $elm.data('section'));\n\t\n\t Voonto.getInstance().when('vtm:ready').then(function () {\n\t TagManager.set({\n\t seccion: tracking.comscore.voc_se,\n\t subseccion1: tracking.comscore.voc_s1,\n\t subseccion2: tracking.comscore.voc_s2,\n\t subseccion3: tracking.comscore.voc_s3,\n\t subseccion4: tracking.comscore.voc_s4,\n\t titular: tracking.comscore.voc_tn,\n\t tipoDominio: tracking.comscore.voc_pr,\n\t edicion: tracking.comscore.voc_ed,\n\t tipoContenido: tracking.comscore.voc_tc,\n\t tipoContenidoA: tracking.comscore.voc_tcnew,\n\t plataformaContenido: tracking.comscore.voc_pl,\n\t sistemaPublicacion: tracking.comscore.voc_pu,\n\t fechaPrimeraPublicacion: tracking.comscore.voc_fep,\n\t fechaModificacion: tracking.comscore.voc_fem,\n\t idioma: tracking.comscore.voc_idi,\n\t IDEvolok: tracking.comscore.voc_pw_pid,\n\t firmaAutor: tracking.comscore.voc_au,\n\t origenContenido: tracking.comscore.voc_or,\n\t topics: tracking.comscore.voc_top,\n\t scrollInfinito: true,\n\t scrollInfinitoHome: $elm.data('section-seq'),\n\t scrollDireccion: window.vocento.tracking.comscore.scrollDireccion\n\t\n\t }).track();\n\t\n\t Logger.info('VTM dataLayer');\n\t Logger.info(TagManager.get());\n\t\n\t /** GTM datalayer scroll push event */\n\t window.dataLayer.push({ 'event': 'scrollview' });\n\t }, function (reason) {\n\t trackUtils.imgTrack('vtm-ready-error-section', reason);\n\t Logger.error('Error while vtm:ready promise: ', reason);\n\t });\n\t } catch (ex) {\n\t trackUtils.imgTrack('vtm-error-exception-section', ex);\n\t Logger.error('Exception while tracking section: ', ex);\n\t }\n\t }\n\t\n\t /**\n\t * return true if is back view\n\t * @return {boolean}\n\t */\n\t\n\t }, {\n\t key: 'isBackView',\n\t value: function isBackView() {\n\t return typeof history.state !== 'undefined' && history.state !== null && typeof history.state.lastSectionView !== 'undefined';\n\t }\n\t }, {\n\t key: 'disableHomeTopAds',\n\t value: function disableHomeTopAds() {\n\t Voonto.$('[data-voc-vam-position]').each(function (k, v) {\n\t var $v = Voonto.$(v);\n\t $v.attr('data-voc-vam-position-back', $v.attr('data-voc-vam-position'));\n\t $v.removeAttr('data-voc-vam').removeAttr('data-voc-vam-position');\n\t });\n\t }\n\t }, {\n\t key: 'enableHomeTopAds',\n\t value: function enableHomeTopAds() {\n\t Voonto.$('[data-voc-vam-position-back]').each(function (k, v) {\n\t var $v = Voonto.$(v);\n\t $v.attr('data-voc-vam-position', $v.attr('data-voc-vam-position-back'));\n\t $v.attr('data-voc-vam', '');\n\t });\n\t }\n\t }]);\n\t\n\t return SectionLoadUtils;\n\t}();\n\t\n\t;\n\t\n\texports.default = SectionLoadUtils;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t\n\t /**\n\t * write img element with error to track exceptions in kibana\n\t * @param key\n\t * @param message\n\t * @return {HTMLImageElement}\n\t */\n\t imgTrack: function imgTrack(key, message) {\n\t var today = new Date(),\n\t date = today.getFullYear() + '_' + (today.getMonth() + 1) + '_' + today.getDate(),\n\t time = today.getHours() + \"_\" + today.getMinutes() + \"_\" + today.getSeconds(),\n\t dateTime = date + '-' + time,\n\t src = '/comun/img/dtm-track.jpg',\n\t querystring = encodeURI('key=' + key + '&datetime=' + dateTime + '&message=' + message),\n\t img = document.createElement('img');\n\t img.src = src + '?' + querystring;\n\t return img;\n\t },\n\t exportRootVars: function exportRootVars() {\n\t for (var key in window.vocento.tracking.root) {\n\t if (vocento.tracking.root.hasOwnProperty(key)) {\n\t window[key] = vocento.tracking.root[key];\n\t }\n\t }\n\t },\n\t exportComscoreVars: function exportComscoreVars() {\n\t /** solo exportamos algunas variables, ya que VTM tiene prioridad sobre las vocvars y pisariamos sus valores */\n\t window.voc_ate = window.vocento.tracking.comscore.voc_ate;\n\t window.voc_top = window.vocento.tracking.comscore.voc_top;\n\t window.voc_site = window.vocento.tracking.comscore.voc_site;\n\t window.voc_tcnew = window.vocento.tracking.comscore.voc_tcnew;\n\t window.voc_tc = window.vocento.tracking.comscore.voc_tc;\n\t window.voc_se = window.vocento.tracking.comscore.voc_se;\n\t window.voc_au = window.vocento.tracking.comscore.voc_au;\n\t window.voc_s1 = window.vocento.tracking.comscore.voc_s1;\n\t window.voc_s2 = window.vocento.tracking.comscore.voc_s2;\n\t window.voc_s3 = window.vocento.tracking.comscore.voc_s3;\n\t window.voc_s4 = window.vocento.tracking.comscore.voc_s4;\n\t window.voc_npc = window.vocento.tracking.comscore.voc_npc;\n\t },\n\t setTrackBuscadorPlaySummum: function setTrackBuscadorPlaySummum(TagManager) {\n\t var main = window.document.getElementsByTagName('main');\n\t if (main.length > 0) {\n\t var keywords = main[0].getAttribute('data-keywords');\n\t var num_entries = main[0].getAttribute('data-num-entries');\n\t var buscador = main[0].getAttribute('data-buscador');\n\t if (keywords !== null && keywords !== '') {\n\t TagManager.set({\n\t keyword: this.kebabCase(keywords),\n\t tipoBuscador: 'buscador-' + buscador,\n\t errorBusqueda: num_entries == 0 ? 'la-busqueda-no-obtuvo-ningun-resultado' : '',\n\t nResultados: num_entries\n\t });\n\t }\n\t }\n\t },\n\t kebabCase: function kebabCase(string) {\n\t var result = string;\n\t // Convert camelCase capitals to kebab-case.\n\t result = result.replace(/([a-z][A-Z])/g, function (match) {\n\t return match.substr(0, 1) + '-' + match.substr(1, 1).toLowerCase();\n\t });\n\t // Convert non-camelCase capitals to lowercase.\n\t result = result.toLowerCase();\n\t // Convert non-alphanumeric characters to hyphens\n\t result = result.replace(/[^-a-z0-9]+/g, '-');\n\t // Remove hyphens from both ends\n\t result = result.replace(/^-+/, '').replace(/-$/, '');\n\t return result;\n\t }\n\t};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.recalBody = recalBody;\n\texports.initSticky = initSticky;\n\texports.recalcSticky = recalcSticky;\n\tvar app = Voonto.getInstance();\n\tvar libPath = app.lookup('vocento.config.nibara').libPath;\n\tif (libPath === undefined) {\n\t throw 'nibara libPath config is empty';\n\t}\n\t\n\tvar cargaSticky = false,\n\t tamBody = 0,\n\t tamColC = Voonto.$('.mas-contenido-articulo').height();\n\t;\n\tfunction recalBody() {\n\t if (typeof Voonto.$('.hueco-imagen-principal ').height() === 'number') {\n\t tamBody = Voonto.$('.hueco-imagen-principal ').height() + Voonto.$('.cuerpo-texto').height();\n\t } else {\n\t tamBody = Voonto.$('.cuerpo-texto').height();\n\t }\n\t Logger.info('[Sticky] recalBody tamBody: ' + tamBody + ' tamColC: ' + tamColC);\n\t}\n\t\n\tfunction initSticky() {\n\t Logger.info('[Sticky] Function initSticky');\n\t recalBody();\n\t if (tamBody >= tamColC && !cargaSticky) {\n\t app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(function () {\n\t Logger.info('[Sticky] initSticky');\n\t Voonto.$('[data-sticky-spacer]').each(function (i, e) {\n\t var spacer = Voonto.$(e).parent().data('spacer');\n\t if (typeof spacer !== 'undefined') {\n\t Logger.info('[Sticky] spacer: .', spacer);\n\t Voonto.$(e).stick_in_parent({\n\t offset_top: 20,\n\t spacer: '.' + spacer\n\t });\n\t }\n\t });\n\t cargaSticky = true;\n\t });\n\t }\n\t Logger.info('[Sticky] CargaSticky', cargaSticky);\n\t}\n\t\n\tfunction recalcSticky() {\n\t Logger.info('[Sticky] Function recalcSticky');\n\t recalBody();\n\t if (tamBody >= tamColC) {\n\t if (cargaSticky) {\n\t Logger.info('[Sticky] recalcSticky');\n\t Voonto.$('[data-sticky-spacer]').parent().attr('style', '');\n\t Voonto.$(document.body).trigger('sticky_kit:recalc');\n\t } else {\n\t initSticky();\n\t }\n\t }\n\t}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.menusMobile = menusMobile;\n\texports.menusDesktop = menusDesktop;\n\t\n\tvar _vocuserNotifications = __webpack_require__(14);\n\t\n\tfunction menusMobile() {\n\t var seccion = window.nibara.nTools.getSectionUrl();\n\t Logger.debug('[menuMobile] seccion: ', seccion);\n\t if (seccion === 'blogs') {\n\t Voonto.$('.navegacion a.opinion').addClass('activo');\n\t Voonto.$('.navegacion a.opinion').next().next().show();\n\t Voonto.$('.navegacion a.opinion').next().addClass('rotado');\n\t } else if (seccion !== 'summum' && seccion !== 'guia-restaurantes') {\n\t Voonto.$('.navegacion a').removeClass('activo');\n\t }\n\t\n\t var navID = $('body').data('edicion');\n\t /*if (navID) {\n\t Voonto.$('.navegacion a.' + navID).addClass('activo');\n\t Voonto.$('.navegacion a.' + navID).next().next().show();\n\t }*/\n\t Voonto.$('[data-abre-navegacion]').click(function () {\n\t Voonto.$('.navegacion').stop().animate({ right: '0' }, 350, 'linear');\n\t });\n\t Voonto.$('[data-cierra-navegacion]').click(function () {\n\t Voonto.$('.navegacion').stop().animate({ right: '100%' }, 350, 'linear');\n\t });\n\t Voonto.$('[data-abre-siguiente]').click(function () {\n\t Voonto.$(this).next().slideToggle();\n\t Voonto.$(this).toggleClass('rotado');\n\t });\n\t Voonto.$('[data-boton-animado]').on('click', function () {\n\t var tipoAnimacion = Voonto.$(this).data('boton-animado');\n\t Logger.info('tipoAnimacion ' + tipoAnimacion);\n\t switch (tipoAnimacion) {\n\t case 'menu':\n\t Voonto.$(this).toggleClass('abierto');\n\t }\n\t });\n\t\n\t /** menu usuario y alertas function *******************************************************/\n\t Voonto.$('[data-abre-menu-usuario-login]').click(function () {\n\t Voonto.$('[data-menu-usuario-login]').addClass('visible');\n\t Voonto.$('[data-menu-alerta-login]').removeClass('visible');\n\t });\n\t Voonto.$('[data-abre-menu-alerta-login]').click(function () {\n\t (0, _vocuserNotifications.listNotifications)().then(function () {\n\t Voonto.$('[data-menu-usuario-login]').removeClass('visible');\n\t Voonto.$('[data-menu-alerta-login]').addClass('visible');\n\t });\n\t });\n\t Voonto.$('[data-cerrar-menu-usuario-login]').click(function () {\n\t Voonto.$('[data-menu-usuario-login]').removeClass('visible');\n\t });\n\t Voonto.$('[data-cerrar-menu-alerta-login]').click(function () {\n\t Voonto.$('[data-menu-alerta-login]').removeClass('visible');\n\t });\n\t}\n\t\n\tfunction menusDesktop() {\n\t Logger.info('[post-script] Init menusDesktop');\n\t var seccion = window.nibara.nTools.getSectionUrl();\n\t Logger.info('[post-script] seccion: ' + seccion);\n\t\n\t var app = Voonto.getInstance();\n\t var siteType = app.lookup('vocento.site').type;\n\t if (siteType !== undefined) {\n\t Voonto.$('.main .titulo-seccion').css({\n\t 'top': '-61px',\n\t 'opacity': 1\n\t });\n\t } else {\n\t if (Voonto.$('.segundo-nivel').length && seccion !== 'summum') {\n\t Voonto.$('.main .titulo-seccion').css({\n\t 'top': '-91px',\n\t 'opacity': 1\n\t });\n\t } else {\n\t Voonto.$('.main .titulo-seccion').css('opacity', 1);\n\t }\n\t }\n\t\n\t Voonto.$('[data-mostrar]').on('click', function () {\n\t if (Voonto.$(this).data('mostrar') !== '') {\n\t Voonto.$(this).next().css('display', Voonto.$(this).data('mostrar'));\n\t } else {\n\t Voonto.$(this).next().show();\n\t }\n\t });\n\t\n\t Voonto.$('[data-cerrar]').on('click', function () {\n\t Voonto.$(this).parent().hide();\n\t });\n\t\n\t /** menu usuario y alertas function *******************************************************/\n\t var botonUsuarioLogin = Voonto.$('[data-abre-menu-usuario-login]'),\n\t botonAlertaLogin = Voonto.$('[data-abre-menu-alerta-login]'),\n\t menuUsuarioLogin = Voonto.$('[data-menu-usuario-login]'),\n\t menuAlertaLogin = Voonto.$('[data-menu-alerta-login]'),\n\t botonUsuarioLoginSticky = Voonto.$('[data-abre-menu-usuario-login-sticky]'),\n\t botonAlertaLoginSticky = Voonto.$('[data-abre-menu-alerta-login-sticky]'),\n\t menuUsuarioLoginSticky = Voonto.$('[data-menu-usuario-login-sticky]'),\n\t menuAlertaLoginSticky = Voonto.$('[data-menu-alerta-login-sticky]');\n\t\n\t botonUsuarioLogin.on('click', function () {\n\t Logger.info('[post-script] botonUsuarioLogin click');\n\t Logger.info('[post-script] botonUsuarioLogin: ' + botonUsuarioLogin);\n\t if (menuUsuarioLogin.hasClass('visible')) {\n\t Logger.info('[post-script] menuUsuarioLogin has class visible');\n\t Voonto.$(this).removeClass('visible');\n\t menuUsuarioLogin.removeClass('visible');\n\t } else {\n\t Logger.info('[post-script] menuUsuarioLogin not class visible');\n\t Voonto.$(this).addClass('visible');\n\t menuUsuarioLogin.addClass('visible');\n\t botonAlertaLogin.removeClass('visible');\n\t menuAlertaLogin.removeClass('visible');\n\t }\n\t });\n\t\n\t botonAlertaLogin.on('click', function () {\n\t Logger.info('[post-script] botonAlertaLogin click');\n\t if (menuAlertaLogin.hasClass('visible')) {\n\t Voonto.$(this).removeClass('visible');\n\t menuAlertaLogin.removeClass('visible');\n\t } else {\n\t (0, _vocuserNotifications.listNotifications)().then(function () {\n\t Logger.debug('[vocuser-notifications] cambio menu');\n\t botonAlertaLogin.addClass('visible');\n\t menuAlertaLogin.addClass('visible');\n\t botonUsuarioLogin.removeClass('visible');\n\t menuUsuarioLogin.removeClass('visible');\n\t });\n\t }\n\t });\n\t\n\t botonUsuarioLoginSticky.on('click', function () {\n\t Logger.info('[post-script] botonUsuarioLoginSticky click');\n\t if (menuUsuarioLoginSticky.hasClass('visible')) {\n\t Voonto.$(this).removeClass('visible');\n\t menuUsuarioLoginSticky.removeClass('visible');\n\t } else {\n\t Voonto.$(this).addClass('visible');\n\t menuUsuarioLoginSticky.addClass('visible');\n\t botonAlertaLoginSticky.removeClass('visible');\n\t menuAlertaLoginSticky.removeClass('visible');\n\t }\n\t });\n\t\n\t botonAlertaLoginSticky.on('click', function () {\n\t Logger.info('[post-script] botonAlertaLoginSticky click');\n\t if (menuAlertaLoginSticky.hasClass('visible')) {\n\t Voonto.$(this).removeClass('visible');\n\t menuAlertaLoginSticky.removeClass('visible');\n\t } else {\n\t (0, _vocuserNotifications.listNotifications)().then(function () {\n\t botonAlertaLoginSticky.addClass('visible');\n\t menuAlertaLoginSticky.addClass('visible');\n\t botonUsuarioLoginSticky.removeClass('visible');\n\t menuUsuarioLoginSticky.removeClass('visible');\n\t });\n\t }\n\t });\n\t}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar app = Voonto.getInstance();\n\t\n\tvar baseurl = '/ajax/v2/api/v1/';\n\tvar vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\n\tvar host = window.location.host;\n\tif (vocUserNotificationsPath !== undefined) {\n\t baseurl = vocUserNotificationsPath + baseurl;\n\t} else if ('abcblogs.abc.es' === host) {\n\t baseurl = 'https://www.abc.es' + baseurl;\n\t}\n\t\n\tvar checkNotifications = false;\n\t\n\tfunction notificationsLoad() {\n\t countNotifications();\n\t\n\t Voonto.$('.bloque-notificaciones, .notificaciones-capa').on('click', '.delete', function (ev) {\n\t ev.preventDefault();\n\t var id = Voonto.$(this).data('id');\n\t var ids = [];\n\t ids.push(id);\n\t deleteNotifications(ids);\n\t });\n\t\n\t Voonto.$('.bloque-notificaciones, .notificaciones-capa').on('click', '.cuerpo-notificacion .titulo a', function (ev) {\n\t ev.preventDefault();\n\t ev.stopPropagation();\n\t var id = Voonto.$(this).data('id');\n\t var status = Voonto.$(this).data('status');\n\t var url = Voonto.$(this).attr('href');\n\t var ids = [];\n\t ids.push(id);\n\t if (status != 'read' && ids.length > 0) {\n\t confirmClickedUrl(ids, url, status);\n\t } else {\n\t window.location.href = url;\n\t }\n\t });\n\t}\n\t\n\tfunction countNotifications() {\n\t\n\t Voonto.$.ajax({\n\t url: baseurl + 'notifications/count',\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('count notifications: retrieve', textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t if (response.count > 0) {\n\t Logger.debug('[vocuser-notifications] count notifications', response.count);\n\t Voonto.$('.user-logged-in > .alertas.notificaciones').append('' + response.count + '');\n\t }\n\t } else {\n\t Logger.error('[vocuser-notifications] count notifications', response);\n\t }\n\t });\n\t}\n\t\n\tfunction countNotificationsR2() {\n\t var daysRecents = 5;\n\t var today = new Date();\n\t var dateRecents = new Date(today.getTime() - daysRecents * 24 * 3600 * 1000);\n\t Logger.debug('[post-script] Count notifications R2');\n\t Logger.debug('[post-script] baseurl: ' + baseurl + 'notifications/list');\n\t Voonto.$.ajax({\n\t url: baseurl + 'notifications/list',\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('count notifications: retrieve', textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t if (response.list.length > 0) {\n\t Logger.debug('[vocuser-notifications] count notifications all', response.list.length);\n\t var recientes = [];\n\t response.list.forEach(function (notification) {\n\t var notDate = notification['timestamp'].split(/[^0-9]/);\n\t var notificationDate = new Date(notDate[0], notDate[1] - 1, notDate[2], notDate[3], notDate[4], notDate[5]);\n\t if (dateRecents <= notificationDate && notification['status'] === 'received') {\n\t recientes.push(notification);\n\t }\n\t });\n\t Logger.debug('[vocuser-notifications] count notifications recents', recientes.length);\n\t if (recientes.length > 0) {\n\t Voonto.$('.user-logged-in > .alertas.notificaciones').append('' + recientes.length + '');\n\t }\n\t }\n\t } else {\n\t Logger.error('[vocuser-notifications] count notifications', response);\n\t }\n\t });\n\t}\n\t\n\tfunction confirmNotifications(notifications, statusNotif) {\n\t\n\t var events = [];\n\t var status = '';\n\t\n\t if (notifications.length > 0) {\n\t events = notifications;\n\t status = statusNotif;\n\t } else {\n\t /* confirmamos todas las notificaciones, enviamos el id de una para recibir el request no vacio */\n\t var event = '0000';\n\t events.push(event);\n\t status = 'received,read';\n\t }\n\t\n\t var data = {\n\t 'notifications': events,\n\t 'status': status,\n\t 'all': 0\n\t };\n\t Logger.debug('[vocuser-notifications] confirm notifications ' + status, data);\n\t\n\t Voonto.$.ajax({\n\t type: 'post',\n\t url: baseurl + 'notifications/confirm',\n\t data: data,\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('confirm notifications: retrieve', textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('[vocuser-notifications] confirm notifications OK');\n\t Voonto.$('.user-logged-in > .alertas.notificaciones, .todas-notificaciones').find('.globo, .nuevo').remove();\n\t } else {\n\t Logger.error('[vocuser-notifications] confirm notifications', response);\n\t }\n\t });\n\t}\n\t\n\tfunction listNotifications() {\n\t var hitsMenu = 4;\n\t var daysRecents = 5;\n\t var today = new Date();\n\t var dateRecents = new Date(today.getTime() - daysRecents * 24 * 3600 * 1000);\n\t\n\t return new Promise(function (resolve, reject) {\n\t\n\t app.when('vocuser:ready').then(function (gigyaUX) {\n\t Logger.debug('[vocuser-notifications listNotifications] gigyaUX');\n\t var userType = gigyaUX.getUserType();\n\t if (userType !== 'anonimo') {\n\t\n\t Voonto.$.ajax({\n\t url: baseurl + 'notifications/list',\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('list notifications: retrieve', textStatus);\n\t return reject(textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('[vocuser-notifications listNotifications] response', response);\n\t var notificationsUrl = [];\n\t var notificationsNoUrl = [];\n\t var $list = Voonto.$('.login-alerta > .notificaciones-capa');\n\t $list.children().remove();\n\t if (response.list.length > 0) {\n\t var recientes = [];\n\t var anteriores = [];\n\t response.list.forEach(function (notification) {\n\t if (notification['status'] == 'received') {\n\t if (notification['content']['url'] != '') {\n\t notificationsUrl.push(notification['id']);\n\t } else {\n\t notificationsNoUrl.push(notification['id']);\n\t }\n\t }\n\t });\n\t response.list.slice(0, hitsMenu * 2).forEach(function (notification) {\n\t var notDate = notification['timestamp'].split(/[^0-9]/);\n\t var notificationDate = new Date(notDate[0], notDate[1] - 1, notDate[2], notDate[3], notDate[4], notDate[5]);\n\t if (dateRecents <= notificationDate) {\n\t recientes.push(notification);\n\t } else {\n\t anteriores.push(notification);\n\t }\n\t });\n\t if (recientes.length > 0) {\n\t $list.append('' + 'Recientes
' + '');\n\t recientes.slice(0, hitsMenu).forEach(function (notification) {\n\t displayNotification($list.find('.bloque-notificaciones'), notification);\n\t });\n\t $list.append('');\n\t }\n\t if (anteriores.length > 0 && recientes.length < hitsMenu) {\n\t $list.append('' + 'Anteriores
' + '');\n\t var items = recientes.length;\n\t anteriores.slice(0, hitsMenu).forEach(function (notification) {\n\t if (items < hitsMenu) {\n\t displayNotification($list.find('.secundario .bloque-notificaciones'), notification);\n\t items = items + 1;\n\t }\n\t });\n\t $list.append('');\n\t }\n\t\n\t $list.append('' + '' + 'Ver todas' + '' + '' + '' + '' + '');\n\t } else {\n\t $list.append('No tienes ninguna notificación pendiente');\n\t }\n\t if (notificationsUrl.length > 0) {\n\t confirmNotifications(notificationsUrl, 'received,pending');\n\t }\n\t if (notificationsNoUrl.length > 0) {\n\t confirmNotifications(notificationsNoUrl, 'received,read');\n\t }\n\t return resolve();\n\t } else {\n\t Logger.error('[vocuser-notifications] list notifications', response);\n\t return reject('Invalid response');\n\t }\n\t });\n\t } else {\n\t return resolve();\n\t }\n\t });\n\t\n\t function displayNotification($list, notification) {\n\t var type = '';\n\t var mchannel = void 0,\n\t source = void 0,\n\t linkname = void 0,\n\t vtmInfo = '';\n\t var title = 'Noticia';\n\t if (notification['content']['contentType'] == 'concurso' || notification['content']['contentType'] == 'evento') {\n\t type = 'evento';\n\t title = 'Concurso';\n\t } else if (notification['content']['contentType'] == 'encuesta') {\n\t type = 'encuesta';\n\t title = 'Encuesta';\n\t }\n\t if (notification['content']['url'].includes('/opinion/')) {\n\t title = 'Opinión';\n\t }\n\t if (notification['content']['contentType'] == 'noticia') {\n\t mchannel = 'autor';\n\t } else {\n\t mchannel = 'manual';\n\t }\n\t if (mchannel == 'autor') {\n\t source = notification['content']['categoryId'];\n\t linkname = notification['content']['author']['name'].toLowerCase().replace(/[^a-zA-Z0-9]+/g, '-');\n\t vtmInfo = mchannel + '-' + linkname;\n\t } else {\n\t source = notification['content']['contentId'];\n\t linkname = notification['content']['contentType'];\n\t vtmInfo = mchannel + '-' + source + '-' + linkname;\n\t }\n\t var tagging = '#ns_campaign=area-usuario-notif&ns_mchannel=' + mchannel + '&ns_source=' + source + '&ns_linkname=' + linkname + '&ns_fee=0';\n\t var authorBottom = '';\n\t\n\t if (notification['content'].hasOwnProperty('interests') && notification['content']['interests'].length > 0) {\n\t if (notification['content']['interests'][0]['name'] !== '') {\n\t authorBottom = notification['content']['interests'][0]['name'];\n\t } else if (notification['content']['interests'][0]['subcategory_name'] != 'General') {\n\t authorBottom = notification['content']['interests'][0]['category_name'] + ' - ' + notification['content']['interests'][0]['subcategory_name'];\n\t } else {\n\t authorBottom = notification['content']['interests'][0]['category_name'];\n\t }\n\t }\n\t if (notification['content']['url'] != '') {\n\t $list.append('' + '' + title + '' + (authorBottom != '' ? 'en ' + authorBottom : 'por ' + notification['content']['author']['name']) + '' + '' + '' + (authorBottom != '' ? '' + notification['content']['author']['name'] + '' : '') + '' + '' + '');\n\t } else {\n\t $list.append('' + '' + title + '' + (authorBottom != '' ? 'en ' + authorBottom : 'por ' + notification['content']['author']['name']) + '' + '' + '' + notification['content']['title'] + '
' + (authorBottom != '' ? '' + notification['content']['author']['name'] + '' : '') + '' + '' + '');\n\t }\n\t }\n\t\n\t function dateFormat(fecha) {\n\t if (Voonto.is.safari()) {\n\t fecha = fecha.replace(/(\\+\\d\\d)(\\d\\d)/, function (a, b, c) {\n\t return b + ':' + c;\n\t });\n\t }\n\t\n\t var date = new Date(fecha);\n\t Number.prototype.padLeft = function (base, chr) {\n\t var len = String(base || 10).length - String(this).length + 1;\n\t return len > 0 ? new Array(len).join(chr || '0') + this : this;\n\t };\n\t var dformat = [date.getDate().padLeft(), (date.getMonth() + 1).padLeft(), date.getFullYear()].join('-') + ' ' + [date.getHours().padLeft(), date.getMinutes().padLeft(), date.getSeconds().padLeft()].join(':');\n\t\n\t return dformat;\n\t }\n\t });\n\t}\n\t\n\tfunction deleteNotifications(ids) {\n\t var data = { 'notifications': ids };\n\t Logger.debug('[vocuser-notifications] delete notifications', data);\n\t\n\t Voonto.$.ajax({\n\t type: 'post',\n\t url: baseurl + 'notifications/delete',\n\t data: data,\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('delete notifications: retrieve', textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('[vocuser-notifications] delete notifications OK');\n\t ids.forEach(function (id) {\n\t Voonto.$('.bloque-notificaciones [data-id=' + id + ']').closest('article').remove();\n\t });\n\t checkNotificationsEmpty();\n\t } else {\n\t Logger.error('[vocuser-notifications] delete notifications', response);\n\t }\n\t });\n\t}\n\t\n\tfunction confirmClickedUrl(ids, url, status) {\n\t\n\t var data = {\n\t 'notifications': ids,\n\t 'status': status + ',read',\n\t 'all': 0\n\t };\n\t Logger.debug('[vocuser-notifications] confirm clicked url', data);\n\t\n\t Voonto.$.ajax({\n\t type: 'post',\n\t url: baseurl + 'notifications/confirm',\n\t data: data,\n\t dataType: 'json',\n\t xhrFields: {\n\t withCredentials: true\n\t },\n\t timeout: 10000\n\t }).fail(function (jqXHR, textStatus, errorThrown) {\n\t Logger.error('confirm clicked url: retrieve', textStatus);\n\t }).done(function (response) {\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('[vocuser-notifications] confirm clicked url OK');\n\t window.location.href = url;\n\t } else {\n\t Logger.error('[vocuser-notifications] delete notifications', response);\n\t }\n\t });\n\t}\n\t\n\tfunction checkNotificationsEmpty() {\n\t var $list = Voonto.$('.notificaciones-capa');\n\t var $listwebpage = Voonto.$('.completa').last();\n\t Logger.debug('[vocuser-notifications] checkNotificationsEmpty', $list);\n\t\n\t if ($list.find('.bloque-notificaciones').children('article').length === 0) {\n\t $list.children().remove();\n\t $list.append('No tienes ninguna notificación pendiente');\n\t }\n\t if ($listwebpage.find('.bloque-notificaciones').children('article').length === 0) {\n\t $listwebpage.find('.bloque-notificaciones').closest('.completa').children().remove();\n\t Logger.debug('[vocuser-notifications] checkNotificationsEmpty webpage', $listwebpage.length);\n\t $listwebpage.append('No tienes ninguna notificación pendiente');\n\t }\n\t}\n\t\n\texports.notificationsLoad = notificationsLoad;\n\texports.listNotifications = listNotifications;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.stickyHeaderMobile = stickyHeaderMobile;\n\texports.stickyHeaderDesktop = stickyHeaderDesktop;\n\tfunction stickyHeaderMobile() {\n\t var posicionAnterior = 0;\n\t var posCabecera = 'suelta';\n\t var estadoCabecera = 'visible';\n\t\n\t var navPortada = document.querySelector('body>.navegacion');\n\t var cabeceraPortada = document.querySelector('body>.cabecera');\n\t\n\t function fijarCabeceraSticky() {\n\t if (cabeceraPortada.parentElement.classList.contains('portada') || cabeceraPortada.parentElement.classList.contains('subportada')) {\n\t cabeceraPortada.classList.add('a-portada-seccion');\n\t }\n\t cabeceraPortada.classList.add('cabecera-sticky');\n\t cabeceraPortada.previousElementSibling.style.marginBottom = '50px';\n\t return 'fija';\n\t }\n\t\n\t function soltarCabeceraSticky() {\n\t if (cabeceraPortada.parentElement.classList.contains('portada') || cabeceraPortada.parentElement.classList.contains('subportada')) {\n\t cabeceraPortada.classList.remove('a-portada-seccion');\n\t }\n\t cabeceraPortada.classList.remove('cabecera-sticky');\n\t cabeceraPortada.previousElementSibling.style.marginBottom = '0px';\n\t return 'suelta';\n\t }\n\t\n\t function cabeceraStickyVisible() {\n\t cabeceraPortada.classList.add('visible');\n\t return 'visible';\n\t }\n\t\n\t function cabeceraStickyOculta() {\n\t cabeceraPortada.classList.remove('visible');\n\t return 'noVisible';\n\t }\n\t\n\t if (navPortada && cabeceraPortada) {\n\t var delay = false;\n\t var posicionCabecera = cabeceraPortada.offsetTop + cabeceraPortada.offsetHeight;\n\t setTimeout(function () {\n\t document.addEventListener('scroll', function () {\n\t if (delay) return;\n\t if (window.scrollY > posicionCabecera) {\n\t if (posCabecera === 'suelta') posCabecera = fijarCabeceraSticky();\n\t if (window.scrollY > posicionAnterior && estadoCabecera === 'visible') {\n\t estadoCabecera = cabeceraStickyOculta();\n\t }\n\t if (window.scrollY < posicionAnterior && estadoCabecera === 'noVisible') {\n\t estadoCabecera = cabeceraStickyVisible();\n\t }\n\t } else if (window.scrollY < posicionCabecera - cabeceraPortada.offsetHeight || window.scrollY == 0) {\n\t if (posCabecera === 'fija') {\n\t posCabecera = soltarCabeceraSticky();\n\t estadoCabecera = cabeceraStickyOculta();\n\t }\n\t }\n\t posicionAnterior = window.scrollY;\n\t delay = true;\n\t setTimeout(function () {\n\t delay = false;\n\t if (window.scrollY == 0) posCabecera = soltarCabeceraSticky();\n\t }, 50);\n\t });\n\t }, 500);\n\t }\n\t}\n\t\n\tfunction stickyHeaderDesktop() {\n\t var navPortada = document.querySelector('body>.navegacion');\n\t var menuStickyPortada = document.querySelector('.cabecera-sticky');\n\t var capaMenu = document.querySelector('.cabecera-sticky .capa-todo');\n\t var botonUsuarioLogin = document.querySelector('[data-abre-menu-usuario-login]'),\n\t menuUsuarioLogin = document.querySelector('[data-menu-usuario-login]'),\n\t botonAlertaLogin = document.querySelector('[data-abre-menu-alerta-login]'),\n\t menuAlertaLogin = document.querySelector('[data-menu-alerta-login]'),\n\t botonUsuarioLogout = document.querySelector('[data-abre-menu-usuario-logout]'),\n\t botonUsuarioLoginSticky = document.querySelector('[data-abre-menu-usuario-login-sticky]'),\n\t botonUsuarioLogoutSticky = document.querySelector('[data-abre-menu-usuario-logout-sticky]'),\n\t menuUsuarioLoginSticky = document.querySelector('[data-menu-usuario-login-sticky]'),\n\t botonAlertaLoginSticky = document.querySelector('[data-abre-menu-alerta-login-sticky]'),\n\t menuAlertaLoginSticky = document.querySelector('[data-menu-alerta-login-sticky]');\n\t\n\t function cabeceraStickyVisible() {\n\t menuStickyPortada.classList.add('visible');\n\t if (menuUsuarioLogin) {\n\t menuUsuarioLogin.classList.remove('visible');\n\t }\n\t if (menuAlertaLogin) {\n\t menuAlertaLogin.classList.remove('visible');\n\t }\n\t if (botonUsuarioLogin) {\n\t botonUsuarioLogin.classList.remove('visible');\n\t }\n\t if (botonUsuarioLogout) {\n\t botonUsuarioLogout.classList.remove('visible');\n\t }\n\t if (botonAlertaLogin) {\n\t botonAlertaLogin.classList.remove('visible');\n\t }\n\t return 'visible';\n\t }\n\t\n\t function cabeceraStickyOculta() {\n\t menuStickyPortada.classList.remove('visible');\n\t capaMenu.style.display = 'none';\n\t if (menuUsuarioLoginSticky) {\n\t menuUsuarioLoginSticky.classList.remove('visible');\n\t }\n\t if (menuAlertaLoginSticky) {\n\t menuAlertaLoginSticky.classList.remove('visible');\n\t }\n\t if (botonUsuarioLoginSticky) {\n\t botonUsuarioLoginSticky.classList.remove('visible');\n\t }\n\t if (botonUsuarioLogoutSticky) {\n\t botonUsuarioLogoutSticky.classList.remove('visible');\n\t }\n\t if (botonAlertaLoginSticky) {\n\t botonAlertaLoginSticky.classList.remove('visible');\n\t }\n\t return 'oculta';\n\t }\n\t\n\t if (capaMenu && navPortada && menuStickyPortada) {\n\t var delay = false;\n\t //if(capaMenu.previousElementSibling.classList.contains('todo')) capaMenu.previousElementSibling.addEventListener('click',function(){capaMenu.style.display = 'flex'});\n\t var posicionNavPortada = navPortada.getBoundingClientRect().bottom > 0 ? cabeceraStickyOculta() : cabeceraStickyVisible();\n\t document.addEventListener('scroll', function () {\n\t if (delay) return;\n\t if (navPortada.getBoundingClientRect().bottom <= 0 && posicionNavPortada == 'oculta') {\n\t posicionNavPortada = cabeceraStickyVisible();\n\t }\n\t if (navPortada.getBoundingClientRect().top > 0 && posicionNavPortada == 'visible') {\n\t posicionNavPortada = cabeceraStickyOculta();\n\t }\n\t delay = true;\n\t setTimeout(function () {\n\t delay = false;\n\t }, 100);\n\t });\n\t }\n\t}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar $document = Voonto.$(document),\n\t redesSticky = document.querySelector('.herramientas.fija'),\n\t marcador = document.querySelector('.marcador');\n\tvar redes = redesSticky ? redesSticky.nextElementSibling : null;\n\tvar estadoRedes = 'relativo';\n\t\n\tfunction redesFijo() {\n\t redesSticky.classList.add('redesVisible');\n\t return 'fijo';\n\t}\n\t\n\tfunction redesRelativo() {\n\t redesSticky.classList.remove('redesVisible');\n\t return 'relativo';\n\t}\n\t\n\tvar handleScroll = nibara.nTools.throttle(50, function handleScroll() {\n\t //Logger.info('SocialToolbar handleScroll');\n\t\n\t var bottom = redes.getBoundingClientRect().bottom;\n\t var offset = marcador ? marcador.offsetHeight : 0;\n\t if (bottom <= offset && estadoRedes === 'relativo') {\n\t estadoRedes = redesFijo();\n\t }\n\t if (bottom > offset && estadoRedes === 'fijo') {\n\t estadoRedes = redesRelativo();\n\t }\n\t});\n\t\n\tvar SocialToolbar = function () {\n\t function SocialToolbar(form) {\n\t _classCallCheck(this, SocialToolbar);\n\t\n\t this.isEnabled = false;\n\t }\n\t\n\t _createClass(SocialToolbar, [{\n\t key: 'enable',\n\t value: function enable() {\n\t Logger.info('SocialToolbar enable. isEnabled: ' + this.isEnabled);\n\t if (redesSticky && redes && !this.isEnabled) {\n\t handleScroll();\n\t $document.on('scroll', handleScroll);\n\t this.isEnabled = true;\n\t }\n\t }\n\t }, {\n\t key: 'disable',\n\t value: function disable() {\n\t Logger.info('SocialToolbar disable. isEnabled: ' + this.isEnabled);\n\t if (this.isEnabled) {\n\t $document.off('scroll', handleScroll);\n\t this.isEnabled = false;\n\t redesSticky.classList.remove('redesVisible');\n\t }\n\t }\n\t }]);\n\t\n\t return SocialToolbar;\n\t}();\n\t\n\texports.default = SocialToolbar;\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// layout-script.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d5734f541ded75760e6e","import SocialToolbar from \"./layout/social-toolbar.js\";\nimport {initSticky, recalcSticky} from \"./layout/sticky-kit.js\";\nimport {menusMobile, menusDesktop} from \"./home/menus.js\";\nimport {stickyHeaderDesktop, stickyHeaderMobile} from \"./layout/sticky-header\"\nimport sectionEventUtils from \"../scripts/home/sectionLoadUtils\";\nimport TeInteresa from \"./article/te-interesa\";\nimport {checkPushStatus, subscribeToChannels} from \"./layout/push-notification-indigitall.js\";\nimport initVamDebug from './layout/vam-debug.js';\nimport {notificationsLoad} from \"./layout/vocuser-notifications\"\nimport {checkInterest} from \"./article/additionaldata-script\";\n\nLogger.debug('script layout loaded');\n\n/** get main vars **************************************************************************/\nconst app = Voonto.getInstance();\nconst feature = window.nibara.feature;\n\nconst libPath = app.lookup('vocento.config.nibara').libPath;\nif (libPath === undefined) {\n throw 'nibara libPath config is empty';\n}\n\n/** Menu absoluto abcblogs.abc.es **/\nlet host = window.location.host;\nLogger.debug('[ABCBlogs] change path menu > host: ' + host);\nif ('abcblogs.abc.es' === host) {\n Voonto.$('.primer-nivel li a').each(function() {\n var href = Voonto.$(this).attr('href');\n Logger.debug('[ABCBlogs] change path menu: ' + href);\n if (href.indexOf('https://') == -1 && href.indexOf('http://') == -1) {\n Voonto.$(this).attr('href','https://www.abc.es'+href);\n }\n });\n\n Voonto.$('.segundo-nivel li a').each(function() {\n var href = Voonto.$(this).attr('href');\n Logger.debug('[ABCBlogs] change path menu: ' + href);\n if (href.indexOf('https://') == -1 && href.indexOf('http://') == -1) {\n Voonto.$(this).attr('href','https://www.abc.es'+href);\n }\n });\n}\n\n/** btn up *********************************************************************************/\nVoonto.$('.boton.subir.suave').click(function () {\n let target = Voonto.$('[name=top]');\n if (target) {\n Voonto.$('html,body').animate({\n scrollTop: target.offset().top\n }, 2000);\n return false;\n }\n});\n\n/** image lazyload **************************************************************************/\nVoonto.lazyLoad = new LazyLoad({\n elements_selector: \".lzld\",\n data_src: \"src\"\n});\n\nVoonto.$('.lzld-scroll').on('click', function (ev) {\n Voonto.lazyLoad.handleScroll();\n});\n\n\n/** Menus ***********************************************************************************/\nif (Voonto.is.mobile()){\n Logger.info('Load menu mobile');\n menusMobile();\n}else if( Voonto.is.tablet()) {\n if(vocento.tracking.comscore.voc_tc !== 'portada' && vocento.tracking.comscore.voc_tc !== 'portadilla') {\n Logger.info('Load menu mobile in news');\n menusMobile();\n }else{\n Logger.info('Load menu desktop in home');\n menusDesktop();\n }\n} else {\n Logger.info('Load menu desktop in home');\n menusDesktop();\n}\n\n/** sticky header ***************************************************************************/\nif (Voonto.is.mobile()) {\n stickyHeaderMobile();\n} else {\n stickyHeaderDesktop();\n}\n\nif (Voonto.is.tablet()) {\n app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(() => {\n Voonto.$('[data-sticky]').stick_in_parent({\n offset_top: 20,\n spacer: false\n });\n });\n}\n\n/** tracking sticky mobile buttons ************************************************/\nif (Voonto.is.mobile() || Voonto.is.tablet()) {\n Voonto.SocialToolbar = new SocialToolbar();\n var $stickyAds = Voonto.$('.publi-sticky');\n\n Voonto.$('.publi-sticky.sticky > .botones.cerrar').on('click', function () {\n Voonto.SocialToolbar.enable();\n });\n \n $stickyAds.on('click', function () {\n Voonto.$(this).hide();\n });\n\n /**\n * show Ads sticky when detect scroll\n * @type {boolean}\n */\n let delay = false;\n Voonto.$(window).on(\"scroll\", function () {\n if (delay) return;\n \n delay = setTimeout(function () {\n if($stickyAds.attr('data-rendered') === 'true') {\n $stickyAds.show();\n $stickyAds.attr('data-rendered', false);\n /*if (document.location.href.indexOf(\"/cultura/\") > -1 && 'noticia' === vocento.tracking.comscore.voc_tc) {\n setTimeout(function () {\n Voonto.$('.publi-sticky.sticky > .botones.cerrar').click();\n }, 3000);\n }*/\n }\n delay = false;\n }, 50);\n });\n\n} else {\n if (vocento.tracking.comscore.voc_tc !== 'portada' && vocento.tracking.comscore.voc_tc !== 'portadilla') {\n app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(() => {\n Voonto.$('[data-sticky]').stick_in_parent({\n offset_top: 20,\n spacer: false\n });\n });\n\n initSticky();\n\n Voonto.$(window).on('resize', function () {\n Logger.info('[Sticky] Window Resize');\n recalcSticky();\n });\n\n Voonto.$('[data-voc-vam]').on('vam:viewable', function () {\n Logger.info('[Sticky] Banner', Voonto.$(this), 'viewable');\n recalcSticky();\n });\n\n app.on('layout:init-sticky', function () {\n initSticky();\n });\n\n app.on('layout:recalc-sticky', function () {\n recalcSticky();\n });\n\n document.addEventListener('scroll', nibara.nTools.throttle(200, function () {\n recalcSticky();\n }));\n }\n}\n\n\n/** VocUser **********************************************************************/\nconst vocUserPath = app.lookup('vocento.config.nibara').vocUserPath;\nif (vocUserPath === undefined) {\n throw 'vocUserPath path in config is empty';\n}\nconst vocUserVersion = app.lookup('vocento.config.nibara').vocUserVersion;\nif (vocUserVersion === undefined) {\n throw 'vocuser version is empty';\n}\nLogger.info('Loading vocuser version: ' + vocUserVersion);\napp.load(vocUserPath + '/vocento-vocuser-preloader.js?v=' + vocUserVersion);\n\n\n/** Comments */\nconst commentsPath = app.lookup('vocento.config.nibara').commentsPath;\nLogger.info('Loading comments version: ' + commentsPath);\nif (commentsPath === undefined) {\n throw 'commentsPath path in config is empty';\n}\n\napp.when('vocuser:gigyaready').then(function (e) {\n app.load(commentsPath + '/comments.js');\n});\n\n/** Vam **************************************************************************/\n\nif (feature.homeBacktrace && Voonto.$('body').data('seccion') === 'portada' && window.nibara.isBack === true) {\n\n if(history.state.section === 'main' && typeof history.state.scrollTop !== 'undefined' && history.state.scrollTop > Voonto.$('[data-section=\"main\"]').height()) {\n sectionEventUtils.disableHomeTopAds();\n }\n if(history.state.lastSectionView !== 'main') {\n sectionEventUtils.disableHomeTopAds();\n }\n}\n\nif (window.location.search.indexOf('nDebug_vam=1') > 0) {\n initVamDebug(app);\n} else {\n const vamPath = app.lookup('vocento.config.nibara').vamPath;\n if (vamPath === undefined) {\n throw 'nibara vamPath config is empty';\n }\n let vamUrl = `${vamPath}/vam.js`;\n Logger.info('Loading vam version: ' + vamUrl);\n\n app.load(vamUrl); \n}\n\n/** Vam empty position autohide ***************************************************/\nVoonto.$('[data-voc-vam]').on('vam:isempty', function () {\n if($(this).parent().hasClass('publicidad-portada')) {\n Logger.info('[VAM] Ad slot is empty, hide position: ' + Voonto.$(this).data('voc-vam-position'));\n Voonto.$(this).hide();\n Voonto.$(this).parent().hide();\n }\n});\n\nVoonto.getInstance().when('vam:apiready').then((vamApi) => {\n const adsContainer = [...document.querySelectorAll('[data-voc-vam]')];\n adsContainer.forEach((element) => {\n vamApi.isPositionInactive({ position: `${element.dataset.vocVamPosition}-id` })\n .then((inactive) => {\n if (inactive) {\n Logger.info('[VAM] Ad slot is inactive, hide position: ' + Voonto.$(element).data('voc-vam-position'));\n Voonto.$(this).hide();\n Voonto.$(this).parent().hide();\n }\n })\n });\n});\n\n\n/** header search widget *********************************************************/\nlet $formsBusqueda = Voonto.$(\".buscador-cabecera, nav.navegacion form.buscador\");\n\n$formsBusqueda.on(\"submit\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n \n Logger.info('Buscador cabecera');\n \n let str = Voonto.$(this).find('input').val();\n let location = '/hemeroteca/';\n \n if (str.length > 0) {\n str = window.nibara.nTools.kebabCase(str);\n if (window.location.href.indexOf('lavozdigital.es') > -1) {\n location += 'noticias/';\n str += '.html';\n }\n location += str;\n }\n \n Logger.debug('Buscador action: ', location);\n window.location.href = location;\n\n return false;\n});\n\n$formsBusqueda.find('input').on('keypress', function(e) { \n if(e.which === 13) { \n let $parentForm = Voonto.$(this).closest('form');\n Logger.info('Buscador keypress Enter -> trigger submit form.' . $parentForm.attr('class'));\n $parentForm.trigger('submit');\n }\n});\n\n\n/** cookie law (deprecated) ***/\nif (feature.cookieLaw) {\n Logger.debug(\"feature cookieLaw active\");\n function createCookieLaw() {\n if (document.cookie.indexOf(\"cookie_20170731\") === -1) {\n let cookieName = 'cookie_20170731';\n Logger.info('[Cookie Layer] createCookieLaw: ' + cookieName);\n let cookieDate = new Date;\n cookieDate.setFullYear(cookieDate.getFullYear() + 1);\n document.cookie = cookieName + '=visited; expires=' + cookieDate.toGMTString() + ';';\n Voonto.$('.capa-cookies').fadeOut().hide();\n }\n }\n\n function checkCookieLaw() {\n Logger.info('[Cookie Layer] checkCookieLaw');\n if (document.cookie.indexOf(\"cookie_20170731\") === -1) {\n let cookieDiv = $('.capa-cookies');\n cookieDiv.show();\n\n Voonto.$(window).one('mousewheel', function (e) {\n Logger.info('[Cookie Layer] create cookie mousewheel');\n createCookieLaw();\n });\n\n Voonto.$(window).one('scroll', function (e) {\n Logger.info('[Cookie Layer] create cookie scroll');\n createCookieLaw();\n });\n\n Voonto.$(window).one('touchmove', function (e) {\n Logger.info('[Cookie Layer] create cookie touchmove');\n createCookieLaw();\n });\n\n cookieDiv.click(function () {\n Logger.info('[Cookie Layer] create cookie click');\n createCookieLaw();\n });\n }\n }\n}\n\n/** Push notifications Indigitall ************************************************************/\ndocument.addEventListener('indigitallReady', function() {\n let defaultChannels = [];\n let domainPush = 'push.abc.es';\n if (document.URL.indexOf('sevilla.abc.es') > -1) {\n domainPush = 'push-sevilla.abc.es';\n } else if (document.URL.indexOf('.lavozdigital.es') > -1) {\n domainPush = 'push.lavozdigital.es';\n }\n let url = \"https://\" + domainPush + \"/pushStatusChecker.html?v=1\";\n\n checkPushStatus(url, function(response) {\n Logger.debug(domainPush + ' enabled: ' + response.permission);\n if (!response.permission) {\n let oldState = window.Notification.permission;\n navigator.indigitall.loadIndigitall(function(){\n let newState = window.Notification.permission;\n if(newState != oldState && newState == 'granted' && Array.isArray(defaultChannels) && defaultChannels.length > 0){\n subscribeToChannels(defaultChannels);\n }\n });\n } else {\n navigator.indigitall.loadIndigitall(function(){\n if(Array.isArray(response.channels) && response.channels.length > 0){\n subscribeToChannels(response.channels);\n }else if(Array.isArray(defaultChannels) && defaultChannels.length > 0){\n subscribeToChannels(defaultChannels);\n }\n });\n }\n });\n});\n\napp.load('/indigitall/indigitall.min.js?v=20190218');\n\n/** create cookie function *******************************************************/\nfunction createCookie(src, content = '') {\n Logger.info('[Breaking News] Creo una cookie para un tiempo de vida de 1 hora.');\n // Creo una cookie para un tiempo de vida de 1 hora.\n let date = new Date();\n let minutes = 60;\n date.setTime(date.getTime() + (minutes * 60 * 1000));\n\n let cookieParameters = {path: '/', expires: date};\n Cookies(src, content, cookieParameters);\n}\n\nfunction compruebaCookie() {\n Logger.info('[Breaking News] compruebaCookie');\n let src = 'BreakingNews-ABC';\n Logger.info('[Breaking News] src: ' + src);\n return !(Cookies(src) === null || Cookies(src) === \"\" || Cookies(src) === \"null\" || typeof Cookies(src) === 'undefined');\n}\n\n/** sticky breaking-news|social|ads *********************************************************/\nif (feature.breakingNews && (Voonto.is.mobile() || Voonto.is.tablet())) {\n\n let $urgente = Voonto.$('.urgente-teinteresa');\n if ($urgente.length > 0) {\n let $cerrarUrgente = $urgente.find('.cerrar');\n let type = $cerrarUrgente.data('type');\n if (type === 'urgente') {\n if (compruebaCookie()) {\n Logger.info('[Breaking News] urgente hide. Existe cookie');\n $urgente.hide();\n } else {\n Logger.info('[Breaking News] urgente show. No existe cookie');\n $urgente.show();\n }\n } else {\n Logger.info('[Breaking News] urgente show. Existe urgente multiple');\n $urgente.show();\n }\n\n $cerrarUrgente.click(() => {\n $urgente.hide();\n Voonto.SocialToolbar.enable();\n\n let type = $cerrarUrgente.data('type');\n if (type === 'te-interesa') {\n return false;\n }\n\n let src = 'BreakingNews-ABC';\n let content = 'Breaking News - ABC';\n createCookie(src, content);\n });\n }\n\n Voonto.$('.noticia').click(function () {\n Logger.info('[Breaking News] click noticia');\n let type = Voonto.$(this).data('type');\n if (type === 'urgente') {\n let src = 'BreakingNews-ABC';\n let content = 'Breaking News - ABC';\n createCookie(src, content);\n }\n\n Logger.info('[Breaking News] type: ', type);\n\n let href = Voonto.$(this).data('href');\n if (typeof href !== 'undefined') {\n Logger.info('[Breaking News] href: ', href);\n window.location.href = href;\n }\n });\n}\n\n\n/** sticky teInteresa|ads ***************************************************/\nif (feature.teInteresa && (Voonto.is.mobile() || Voonto.is.tablet())) {\n Logger.debug(\"feature teInteresa active\");\n\n $stickyAds.find('[data-voc-vam]').on('vam:isempty', function () {\n Logger.info('[data-voc-vam][Breaking News] position megabanner_sticky is empty');\n let $urgente = Voonto.$('.urgente-teinteresa');\n let showTeInteresa = true;\n if ($urgente.length > 0) {\n let $cerrarUrgente = $urgente.find('.cerrar');\n let type = $cerrarUrgente.data('type');\n if (type === 'urgente') {\n if (compruebaCookie()) {\n Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n showTeInteresa = false;\n }\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n showTeInteresa = false;\n }\n }\n\n if (!showTeInteresa) {\n Logger.info('BreakingNews ad slot is empty but exist urgente');\n $stickyAds.hide();\n } else {\n if(Voonto.$('body').data('seccion') !== 'portada') {\n Logger.info('BreakingNews ad slot is empty');\n $stickyAds.hide();\n let teinteresa = new TeInteresa();\n teinteresa.load(Voonto.$('#breaking-news-container'));\n }\n }\n });\n\n $stickyAds.find('[data-voc-vam]').on('vam:inactive', function () {\n Logger.info('[data-voc-vam][Breaking News] position megabanner_sticky is inactive');\n let $urgente = Voonto.$('.urgente-teinteresa');\n let showTeInteresa = true;\n if ($urgente.length > 0) {\n let $cerrarUrgente = $urgente.find('.cerrar');\n let type = $cerrarUrgente.data('type');\n if (type === 'urgente') {\n if (compruebaCookie()) {\n Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n showTeInteresa = false;\n }\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n showTeInteresa = false;\n }\n }\n\n if (!showTeInteresa) {\n Logger.info('BreakingNews ad slot is inactive but exist urgente');\n $stickyAds.hide();\n } else {\n if(Voonto.$('body').data('seccion') !== 'portada') {\n Logger.info('BreakingNews ad slot is inactive');\n $stickyAds.hide();\n let teinteresa = new TeInteresa();\n teinteresa.load(Voonto.$('#breaking-news-container'));\n }\n }\n });\n\n $stickyAds.find('[data-voc-vam]').on('vam:slotrendered', function () {\n let $urgente = Voonto.$('.urgente-teinteresa');\n let showTeInteresa = true;\n if ($urgente.length > 0) {\n let $cerrarUrgente = $urgente.find('.cerrar');\n let type = $cerrarUrgente.data('type');\n if (type === 'urgente') {\n if (compruebaCookie()) {\n Logger.info('[data-voc-vam][Breaking News] urgente hide. Existe cookie');\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. No existe cookie');\n showTeInteresa = false;\n }\n } else {\n Logger.info('[data-voc-vam][Breaking News] urgente show. existe urgente múltiple');\n showTeInteresa = false;\n }\n }\n\n if (!showTeInteresa) {\n Logger.info('[data-voc-vam][Breaking News] ad slot is active but exist urgente');\n $stickyAds.hide();\n } else {\n Logger.info('[data-voc-vam][Breaking News] ad slot is active');\n $stickyAds.attr('data-rendered', true);\n }\n });\n\n /**\n * show Ads sticky when detect scroll\n * @type {boolean}\n */\n let delay = false;\n Voonto.$(window).on(\"scroll\", function () {\n if (delay) return;\n \n delay = setTimeout(function () {\n if($stickyAds.attr('data-rendered') === 'true') {\n $stickyAds.show();\n $stickyAds.attr('data-rendered', false);\n if (document.location.href.indexOf(\"/cultura/\") > -1 && 'noticia' === vocento.tracking.comscore.voc_tc) {\n setTimeout(function () {\n Voonto.$('.publi-sticky.sticky > .botones.cerrar').click();\n }, 3000);\n }\n }\n delay = false;\n }, 50);\n });\n\n $stickyAds.on('click', function () {\n Voonto.$(this).hide();\n });\n}\n\n// Comportamiento para cerrar el menu de compartir cuando se hace scroll\nif (feature.shareLayer) {\n Logger.debug(\"feature shareLayer active\");\n let inputShareLayer = Voonto.$('input#capa_compartir'),\n labelShareLayer = Voonto.$('label[for=\"capa_compartir\"]'),\n inputFixedLayer = Voonto.$('input#capa_compartir_fija'),\n labelFixedLayer = Voonto.$('label[for=\"capa_compartir_fija\"]'),\n containerShareLayer = Voonto.$('aside.herramientas:not(.fija) .mas-compartir'),\n containerShareFixedLayer = Voonto.$('aside.herramientas.fija .mas-compartir');\n\n let closeShareLayerHandler = () => {\n Logger.info('[CloseShareLayerHandler] scrolled');\n\n if (inputShareLayer.prop('checked') === true) {\n inputShareLayer.prop('checked', false);\n Logger.info('[CloseShareLayerHandler] ShareLayer abierta, cerrando..');\n }\n\n Voonto.$(window).unbind('scroll', this);\n Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n\n };\n\n let closeFixedShareLayerHandler = () => {\n Logger.info('[CloseFixedShareLayerHandler] scrolled');\n\n if (inputFixedLayer.prop('checked') === true) {\n inputFixedLayer.prop('checked', false);\n Logger.info('[CloseShareLayerHandler] ShareFixedLayer abierta, cerrando..');\n }\n\n Voonto.$(window).unbind('scroll', this);\n Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n };\n\n let closeClickDocumentShareLayerHandler = (e) => {\n Logger.info('[CloseShareLayerHandler] document onclick');\n\n if (inputShareLayer.prop('checked') === true) {\n // esta abierto el menu compartir\n if (Voonto.$.contains(containerShareLayer.get(0), e.target) === false\n && Voonto.$.contains(labelShareLayer.get(0), e.target) === false) {\n inputShareLayer.prop('checked', false);\n Voonto.$(document).unbind('click', this);\n Voonto.$(window).unbind('scroll', closeShareLayerHandler);\n Logger.info('[CloseShareLayerHandler] ShareLayer abierta, cerrando..');\n }\n }\n\n if (inputFixedLayer.prop('checked') === true) {\n // esta abierto el menu compartir de la barra fija\n if (Voonto.$.contains(containerShareFixedLayer.get(0), e.target) === false\n && Voonto.$.contains(labelFixedLayer.get(0), e.target) === false) {\n inputFixedLayer.prop('checked', false);\n Voonto.$(document).unbind('click', this);\n Voonto.$(window).unbind('scroll', closeFixedShareLayerHandler);\n Logger.info('[CloseShareLayerHandler] ShareFixedLayer abierta, cerrando..');\n }\n }\n };\n\n inputShareLayer.on('change', function () {\n let $this = Voonto.$(this);\n Logger.info('[CloseShareLayerHandler] input change');\n if ($this.prop('checked') === true) {\n Voonto.$(document)\n .unbind('click', closeClickDocumentShareLayerHandler)\n .on('click', closeClickDocumentShareLayerHandler);\n } else {\n Voonto.$(window).unbind('scroll', closeShareLayerHandler);\n Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n }\n });\n\n inputFixedLayer.on('change', function () {\n let $this = Voonto.$(this);\n Logger.info('[CloseFixedShareLayerHandler] input change');\n if ($this.prop('checked') === true) {\n Voonto.$(window).one('scroll', closeFixedShareLayerHandler);\n Voonto.$(document)\n .unbind('click', closeClickDocumentShareLayerHandler)\n .on('click', closeClickDocumentShareLayerHandler);\n } else {\n Voonto.$(window).unbind('scroll', closeFixedShareLayerHandler);\n Voonto.$(document).unbind('click', closeClickDocumentShareLayerHandler);\n }\n });\n}\n\n/*************** Notificaciones MiABC y Popup datos adicionales *******************/\napp.when('vocuser:ready').then((gigyaUX) => {\n Logger.debug('[vocuser-ready] gigyaUX',gigyaUX);\n let userType = gigyaUX.getUserType();\n if (userType !== 'anonimo') {\n Logger.debug('[vocuser-ready] usuario logado',gigyaUX);\n notificationsLoad();\n checkInterest();\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout-script.js","//TIMEOUTS EN MILISEGUNDOS\nconst POPUP_TIMEOUT_STARRED = 10000;\nconst POPUP_TIMEOUT_FOLLOWING = 5000;\nconst POPUP_TIMEOUT_OPINION = 10000;\nconst POPUP_TIMEOUT_CREATE_COMMENT = 5000;\nconst POPUP_TIMEOUT_LIKE_COMMENT = 5000;\nconst POPUP_TIMEOUT_CONTEST = 10000;\nconst POPUP_TIMEOUT_EVENT = 10000;\nconst POPUP_TIMEOUT_REGISTER = 15000; //DEF\n//const POPUP_TIMEOUT_REGISTER = 60000;\nconst POPUP_TIMEOUT_LOGIN = 60000; //DEF\n//const POPUP_TIMEOUT_LOGIN = 3000;\n\n//const EXPIRE_COOKIE_POPUP_TIME = 180000; //3 MINUTOS\nconst EXPIRE_COOKIE_POPUP_TIME = 2592000000; //30 DIAS (DEF)\n\nconst app = Voonto.getInstance();\nconst vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\n\nvar savedData = false;\n\n export function getTimeoutPopup($btn){\n switch ($btn){\n case 'starred':\n return POPUP_TIMEOUT_STARRED;\n break;\n case 'following':\n return POPUP_TIMEOUT_FOLLOWING;\n break;\n case 'event':\n return POPUP_TIMEOUT_EVENT;\n break;\n case 'contest':\n return POPUP_TIMEOUT_CONTEST;\n break;\n case 'new-comment':\n return POPUP_TIMEOUT_CREATE_COMMENT;\n break;\n case 'like-comment':\n return POPUP_TIMEOUT_LIKE_COMMENT;\n break;\n case 'opinion':\n return POPUP_TIMEOUT_OPINION;\n break;\n case 'register':\n return POPUP_TIMEOUT_REGISTER;\n break;\n default:\n return POPUP_TIMEOUT_LOGIN;\n break;\n }\n }\n\n export function parseUrl(url) {\n var parser = document.createElement('a');\n parser.href = url;\n return {\n protocol:parser.protocol,\n host:parser.host,\n hostname:parser.hostname,\n port:parser.port,\n pathname:parser.pathname,\n hash:parser.hash,\n search:parser.search,\n origin:parser.origin\n }\n }\n\n export function createCSData($elm){\n Logger.debug('[post-script] createCSData - $elm >> ' + $elm.data('btn'));\n var serviceId = '';\n var serviceReference = '';\n var url = parseUrl(document.location.href);\n var pathname = url.pathname;\n var section = '';\n var host = location.host;\n // (host == 'abcblogsv2.abc.es' || host == 'pre-abcblogsv2.abc.es')\n if (pathname == '' || pathname == '/') {\n section = \"home\";\n } else if (host.match(/abcblogsv2/gi)) {\n section = 'blogs';\n } else {\n var res = pathname.split(\"/\");\n section = res[1];\n }\n if($elm.data('btn') === 'starred'){\n serviceId = '190';\n serviceReference = section;\n }else if ($elm.data('btn') === 'following'){\n serviceId = '195';\n if (section === 'play'){\n serviceReference = $elm.parent().find('.nombre a').attr('title');\n }else{\n serviceReference = $elm.parent().find('.autor').attr('title');\n }\n Logger.debug('[post-script] createCSData - serviceReference >> ' + serviceReference);\n if ('undefined' === typeof serviceReference) {\n var vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\n Logger.debug('[post-script] createCSData - vocUserNotificationsPath >> ' + vocUserNotificationsPath);\n Logger.debug('[post-script] createCSData - section >> ' + section);\n if (vocUserNotificationsPath !== undefined) {\n serviceReference = section;\n }\n }\n Logger.debug('[post-script] createCSData - serviceReference >> ' + serviceReference);\n serviceReference = serviceReference.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g, \"\").replace(/ /g,\"_\");\n }\n return {\n serviceId:serviceId,\n serviceReference:serviceReference\n }\n }\n\n export function getInitialText($btn){\n var initialText = \"Queremos conocerte\";\n switch ($btn){\n case 'starred':\n initialText = 'Has guardado el artículo correctamente, ahora queremos conocerte mejor';\n break;\n case 'following':\n initialText = 'Nos complace saber que sigues a nuestros autores, ahora queremos conocerte mejor';\n break;\n case 'event':\n initialText = 'Ya estás apuntado para el evento, ahora queremos conocerte mejor';\n break;\n case 'contest':\n initialText = 'Ya estás participando en el concurso, ahora queremos conocerte mejor';\n break;\n case 'new-comment':\n initialText = 'Tu comentario se ha publicado correctamente, ahora nos gustaría conocerte mejor';\n break;\n case 'like-comment':\n initialText = 'Tu valoración del comentario se ha guardado correctamente, ahora nos gustaría conocerte mejor';\n break;\n case 'opinion':\n initialText = 'Queremos conocerte';\n break;\n }\n $('.popup_info').find('.textevent').text(initialText);\n }\n\n export function createPopupCookie($elm) {\n var expires = new Date();\n expires.setTime(expires.getTime() + EXPIRE_COOKIE_POPUP_TIME);\n var cookie = \"check_interests=\" + $elm.data('btn') + \";expires=\" + expires.toUTCString() +\";path=/\";\n Logger.debug(\"[cookie popup creada]\");\n return document.cookie = cookie;\n }\n\n export function getUserDataText($arrayNames){\n var fieldText = '';\n var nameAux = '';\n for(var i=0;i<$arrayNames.length;i++){\n nameAux = ($arrayNames[i] == 'edad')?'fecha de nacimiento':$arrayNames[i];\n if (i == 0){\n fieldText = nameAux;\n }else if(i == ($arrayNames.length - 1)){\n fieldText = fieldText + ' y ' + nameAux;\n }else{\n fieldText = fieldText + ', ' + nameAux;\n }\n }\n $('.popup_user_data').find('.fieldstext').text('Por favor ¿Nos puedes facilitar tu ' + fieldText +'?');\n }\n\n export function checkUserData($elm, baseurl){\n\n var btn = $elm.data('btn');\n\n var fields = {};\n\n $('.popup_additional_data').find('select').each(function(){\n if(!fields.hasOwnProperty($(this).attr('name').split('.')[0])) {\n fields[$(this).attr('name').split('.')[0]] = [];\n }\n fields[$(this).attr('name').split('.')[0]].push($(this).attr('name').split('.')[1]);\n });\n\n // Logger.debug('[listado fields]', fields);\n\n Voonto.$.ajax({\n url: baseurl + 'fields/show',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('show fields module: retrieve ' + btn + ' error ', textStatus);\n return null;\n }).done(function(response){\n\n if (response && 'undefined' !== typeof response.code && response.code === 200) {\n var user = response.user;\n var countShow = 0;\n $('.popup_user_data').hide();\n $('.popup_user_data').removeClass('next_popup');\n $('.popup_user_data div').hide();\n $('.popup_user_data').find('div').each(function(){\n $(this).removeClass('next_field');\n });\n $('.popup_user_data').find('select').each(function(){\n $(this).attr('required',false);\n });\n $('.popup_user_interests').hide();\n $('.popup_user_interests').removeClass('next_popup');\n var arrayNames = [];\n Object.keys(fields).forEach(function (key) {\n var field = fields[key];\n Object.keys(field).forEach(function (i) {\n if ((key == 'profile') && ((field[i] == 'birthDay')||(field[i] == 'birthMonth')||(field[i] == 'birthYear'))){\n var currentDate = new Date();\n if ((parseInt(user[key]['birthYear']) > (parseInt(currentDate.getFullYear()) - 13 )) ||(user[key]['birthDay'] === undefined) || (user[key]['birthMonth'] === undefined) || (user[key]['birthYear'] === undefined)){\n $('.popup_user_data .popup_' + field[i]).addClass('next_field');\n $('.popup_user_data .popup_' + field[i]).find('select').each(function(){\n if(user[key]['birthDay'] !== undefined){\n $('.popup_birthDay').find('.birthday').val(user[key]['birthDay'].length < 2 ? \"0\"+user[key]['birthDay'] : user[key]['birthDay']).change();\n }\n if(user[key]['birthMonth'] !== undefined){\n $('.popup_birthDay').find('.birthmonth').val(user[key]['birthMonth'].length < 2 ? \"0\"+user[key]['birthMonth'] : user[key]['birthMonth']).change();\n }\n if((parseInt(user[key]['birthYear']) <= (parseInt(currentDate.getFullYear()) - 13 )) && (user[key]['birthYear'] !== undefined)){\n $('.popup_birthDay').find('.birthyear').val(user[key]['birthYear']).change();\n }\n });\n countShow = countShow + 1;\n if (field[i] == 'birthDay'){\n var nameField = $('.popup_user_data .popup_' + field[i]).find('label').attr('class').split('_')[1];\n if(arrayNames.indexOf(nameField) == -1){\n arrayNames.push(nameField);\n }\n }\n }\n }else{\n if (user[key][field[i]] === undefined || user[key][field[i]] === 'u'){\n $('.popup_user_data .popup_' + field[i]).addClass('next_field');\n countShow = countShow + 1;\n arrayNames.push($('.popup_user_data .popup_' + field[i]).find('label').attr('class').split('_')[1]);\n }\n }\n });\n });\n\n var username = ((user['profile']['firstName'] === undefined)?user['profile']['nickname']:user['profile']['firstName']);\n $('.popup_info .username').text(username);\n getInitialText(btn);\n getUserDataText(arrayNames);\n $('.popup_info').addClass('current_popup');\n $('.popup_info').show();\n if(countShow > 0){\n $('.popup_additional_data').find('.popup_user_data').addClass('next_popup');\n }else{\n $('.popup_additional_data').find('.popup_user_interests').addClass('next_popup');\n }\n $('.popup_additional_data').show();\n }\n\n });\n\n }\n\n export function updateAdditionalData(baseurl){\n\n var newfields = {};\n\n $('.popup_additional_data').find('.next_field select').each(function(){\n if ($(this).val() != ''){\n if(!newfields.hasOwnProperty($(this).attr('name').split('.')[0])) {\n newfields[$(this).attr('name').split('.')[0]] = {};\n }\n newfields[$(this).attr('name').split('.')[0]][$(this).attr('name').split('.')[1]] = $(this).val();\n }\n });\n\n $('.popup_additional_data').find('.next_field select.birthday').attr('required',false);\n if($('.popup_additional_data').find('select.birthday').hasClass('next_field')){\n $('.popup_additional_data').find('.next_field select.birthday')[0].setCustomValidity('');\n }\n $('.popup_additional_data').find('.next_field select.birthmonth').attr('required',false);\n $('.popup_additional_data').find('.next_field select.birthyear').attr('required',false);\n \n if (($('.popup_additional_data').find('.next_field').hasClass('popup_birthDay')) && (($('.popup_additional_data').find('.next_field select.birthday').val()!='')||($('.popup_additional_data').find('.next_field select.birthmonth').val() !='')||($('.popup_additional_data').find('.next_field select.birthyear').val()!=''))){\n if (($('.popup_additional_data').find('.next_field select.birthday').val()=='')||($('.popup_additional_data').find('.next_field select.birthmonth').val() =='')||($('.popup_additional_data').find('.next_field select.birthyear').val()=='')){\n $('.popup_additional_data').find('.next_field select.birthday').attr('required','required');\n $('.popup_additional_data').find('.next_field select.birthmonth').attr('required','required');\n $('.popup_additional_data').find('.next_field select.birthyear').attr('required','required');\n $(\".popup_user_data #form_fields\")[0].reportValidity();\n return;\n }else{\n var date = $('.popup_additional_data').find('.next_field select.birthday').val() + '-' +\n $('.popup_additional_data').find('.next_field select.birthmonth').val() + '-' +\n $('.popup_additional_data').find('.next_field select.birthyear').val();\n if (!isValidDate(date)){\n $('.popup_additional_data').find('.next_field select.birthday')[0].setCustomValidity(\"Revisa los elementos de la fecha\");\n $(\".popup_user_data #form_fields\")[0].reportValidity();\n return;\n }\n }\n }\n\n if ( Object.keys(newfields).length > 0){\n\n var data = {'fields':newfields};\n\n $.ajax({\n type: 'post',\n url: baseurl + 'fields/update',\n data: data,\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown){\n Logger.error('additionaldata module update fields error: ', textStatus);\n }).done(function(response){\n savedData = true;\n getUserInterests();\n Logger.debug('[actualizar datos]',response);\n });\n\n }else{\n getUserInterests();\n }\n }\n\n export function isValidDate(s) {\n // format D(D)/M(M)/(YY)YY\n var dateFormat = /^\\d{1,4}[\\.|\\/|-]\\d{1,2}[\\.|\\/|-]\\d{1,4}$/;\n\n if (dateFormat.test(s)) {\n // remove any leading zeros from date values\n s = s.replace(/0*(\\d*)/gi,\"$1\");\n var dateArray = s.split(/[\\.|\\/|-]/);\n\n // correct month value\n dateArray[1] = dateArray[1]-1;\n\n // correct year value\n if (dateArray[2].length<4) {\n // correct year value\n dateArray[2] = (parseInt(dateArray[2]) < 50) ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]);\n }\n\n var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]);\n if (testDate.getDate()!=dateArray[0] || testDate.getMonth()!=dateArray[1] || testDate.getFullYear()!=dateArray[2]) {\n return false;\n } else {\n return true;\n }\n } else {\n return false;\n }\n }\n\n export function checkUserInterests($elm, baseurl) {\n\n Logger.info('additionaldata module interests');\n\n var btn = $elm.data('btn');\n\n Voonto.$.ajax({\n url: baseurl + 'interests/check',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('show interests module: retrieve ' + btn + ' error ', textStatus);\n return null;\n }).done(function(response){\n if (response && 'undefined' !== typeof response.code && response.code === 200) {\n if(!response.hasinterests){\n if (response.interestslist.length > 0){\n $('.popup_user_interests #form_interests').html('');\n for(var i=0;i');\n if(code.substr(0, code.indexOf('.000'))+'.000' == code){\n $('.popup_user_interests #form_interests').append('');\n }else if(elem.name != ''){\n $('.popup_user_interests #form_interests').append('');\n }else{\n $('.popup_user_interests #form_interests').append('');\n }\n }\n }\n $('.popup_user_interests #form_interests').find('input[type=\"checkbox\"]').on('click', handleCheckedInterestsClick);\n createPopupCookie($elm);\n if (document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)){\n checkUserData($elm, baseurl);\n }\n }\n }\n });\n }\n\n export function handleCheckedInterestsClick(){\n var attr = $(this).attr('checked');\n if (typeof attr !== typeof undefined && attr !== false){\n $(this).removeAttr('checked');\n }else{\n $(this).attr('checked','checked');\n }\n }\n\n export function getUserInterests() {\n var currentcontainer = Voonto.$('.popup_user_interests');\n var oldnextcontainer = Voonto.$('.popup_additional_data').find('.current_popup');\n oldnextcontainer.hide();\n oldnextcontainer.removeClass('current_popup');\n currentcontainer.addClass('current_popup');\n currentcontainer.show();\n }\n\n\n export function updateUserInterests(baseurl){\n Logger.info('additionaldata module interests update');\n\n var interests = [];\n\n $('.popup_additional_data .popup_user_interests').find('input[type=\"checkbox\"]').each(function(){\n var attr = $(this).attr('checked');\n if (typeof attr !== typeof undefined && attr !== false){\n var interest = {};\n interest['ID'] = $(this).attr('id');\n interest['type'] = 'manual';\n interest['status'] = (typeof attr !== typeof undefined && attr !== false)?true:false;\n interests.push(interest);\n }\n });\n\n // Logger.debug('interests checked: ', interests);\n\n if (interests.length > 0){\n var data = {'interests': interests};\n\n $.ajax({\n type: 'post',\n url: baseurl + 'interests/update',\n data: data,\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function (jqXHR, textStatus, errorThrown) {\n Logger.error('additionaldata module update interests error: ', textStatus);\n var currentContainer = $('.popup_user_interests');\n currentContainer.hide();\n currentContainer.removeClass('current_popup');\n $('.popup_result').addClass('current_popup');\n $('.popup_result p.p1').html('¡Ha ocurrido un error!');\n $('.popup_result p.p2').text('Por favor, intentalo más tarde');\n $('.popup_result p.p2').show();\n $('.popup_result').show();\n }).done(function (response) {\n Logger.debug('additionaldata module update', response);\n if (response && 'undefined' !== typeof response.code && response.code === 200) {\n Logger.debug('additionaldata module update ok', response);\n }\n var currentContainer = $('.popup_user_interests');\n currentContainer.hide();\n currentContainer.removeClass('current_popup');\n $('.popup_result').addClass('current_popup');\n $('.popup_result p.p1').html('¡Intereses guardados con éxito!');\n $('.popup_result p.p2').text('A partir de ahora, en ABC.es encontrarás información más personalizada según tus preferencias');\n $('.popup_result p.p2').show();\n $('.popup_result').show();\n });\n }else{\n var currentContainer = $('.popup_user_interests');\n currentContainer.hide();\n currentContainer.removeClass('current_popup');\n $('.popup_result').addClass('current_popup');\n if (savedData){\n $('.popup_result p.p1').html('¡Perfil actualizado con éxito!');\n $('.popup_result p.p2').text('Podrás seguir completando la información de tu perfil e indicando tus intereses favoritos más adelante en tu Área de Usuario en ABC.es');\n $('.popup_result p.p2').show();\n }else{\n $('.popup_result p.p1').text('Podrás seguir completando la información de tu perfil e indicando tus intereses favoritos más adelante en tu Área de Usuario en ABC.es');\n $('.popup_result p.p2').text('');\n $('.popup_result p.p2').hide();\n }\n $('.popup_result').show();\n }\n\n }\n\n export function checkInterest() {\n Logger.debug('check interest request');\n let urlReferer = document.referrer;\n let baseurl = '/ajax/v2/api/v1/';\n if (vocUserNotificationsPath !== undefined) {\n baseurl = vocUserNotificationsPath + baseurl;\n }\n Logger.debug('[post-script] baseurl: ' + baseurl);\n\n let timeoutPopupAddData = 0;\n if (urlReferer.includes(\"registro/validacion-mail.html\")){\n let originRegister = window.location.href;\n let originText = 'register';\n if (originRegister.includes(\"/opinion/\") && originRegister.includes(\".html\")){\n originText = 'opinion';\n }\n timeoutPopupAddData = getTimeoutPopup(originText);\n setTimeout(function () {\n if(!document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)){\n let $elm = $('.gigya-registration-link').attr('data-btn', originText);\n Logger.debug('[additionaldata_popup desde registro]');\n checkUserInterests($elm,baseurl);\n }\n }, timeoutPopupAddData);\n }else{\n let originLogin = window.location.href;\n Logger.debug('[post-script] Origin login: ' + originLogin);\n if (!originLogin.includes(\"/micuenta/\")){\n timeoutPopupAddData = getTimeoutPopup('login');\n setTimeout(function () {\n if(!document.cookie.match(/^(.*;)?\\s*check_interests\\s*=\\s*[^;]+(.*)?$/)) {\n let $elm = $('.gigya-login-link').attr('data-btn', 'login');\n Logger.debug('[additionaldata_popup desde login]');\n checkUserInterests($elm, baseurl);\n }\n }, timeoutPopupAddData);\n }\n }\n }\n\n export function updatedUserInfo(){\n return savedData;\n }\n\n /* Podemos Cargar esta en el scrip gigya.js y hacer un export/import */\n export function actionCustomService (action, event, id, section) {\n let app = Voonto.getInstance();\n app.when('vocuser:ready').then(function(gigyaUX) {\n if (typeof gigyaUX !== 'undefined') {\n if ('update' === action) {\n gigyaUX.updateCustomerServiceInCookieVocUser(id, section);\n Logger.debug('[actionCS] CS Update id: '+id+', seccion: '+section);\n if ('login' === event ) {\n gigyaUX.showLogin();\n } else if ('registro' === event) {\n gigyaUX.showRegistration();\n }\n } else if ('send' === action ){\n gigyaUX.sendCustomerService(id, section).done(function () {\n Logger.debug('[actionCS] CS enviado id: '+id+', seccion: '+section);\n });\n }\n }\n });\n }\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/article/additionaldata-script.js","/* globals vocento, noticiaid */\nconst app = Voonto.getInstance();\n\nclass TeInteresa\n{\n\tconstructor(form) {\n\t\tthis.libPath = app.lookup('vocento.config.nibara').libPath;\n\t\tif (this.libPath === undefined) {\n\t\t\tthrow 'nibara libPath config is empty';\n\t\t}\n\t\tthis.isMobile = Voonto.is.mobile();\n\t\tthis.isTablet = Voonto.is.tablet();\n\t}\n\n\tload($container) \n\t{\n\t\tvar comscore = app.lookup('vocento.tracking.comscore');\n\t\tvar tc = comscore.voc_tcnew ? comscore.voc_tc : null;\n\t\tvar se = comscore.voc_se;\n\t\tif (typeof noticiaid === 'undefined' || !noticiaid || !tc || !se) {\n\t\t\tLogger.error('No se puede cargar te-interesa');\n\t\t\treturn false;\n\t\t}\n\n\t\tvar url = \"/ajax/v2/te-interesa.html?recid=\"+noticiaid+\"&voc_tc=\"+tc +\"&voc_se=\"+se;\n\t\tVoonto.$.ajax({\n\t\t\t\"type\": \"get\",\n\t\t\t\"url\": url,\n\t\t\t\"timeout\": 20000\n\t\t}).fail(() => {\n\t\t\tLogger.error('No se puede cargar te-interesa');\n\t\t\tthis.mobileShowToolbar();\n\t\t}).done((html) => {\n\t\t\tif (html) {\n\t\t\t\tthis.mobileHideToolbar();\n\n\t\t\t\t$container.html(html);\n\t\t\t\tthis.swiper($container.find('.swiper-container'));\n\n\t\t\t\tthis.mobileEvents($container);\n\t\t\t} else {\n\t\t\t\tthis.mobileShowToolbar();\n\t\t\t}\n\t\t});\n\t}\n\n\tmobileShowToolbar()\n\t{\n\t\tif (this.isMobile && Voonto.SocialToolbar) {\n\t\t\tVoonto.SocialToolbar.enable();\n\t\t}\n\t}\n\n\tmobileHideToolbar()\n\t{\n\t\tif (this.isMobile && Voonto.SocialToolbar) {\n\t\t\tVoonto.SocialToolbar.disable();\n\t\t}\n\t}\n\n\tmobileEvents($container)\n\t{\n\t\tif (this.isMobile ) {\n\t\t\tthis.mobileHideToolbar();\n\t\t\t$container.find('.cerrar').click(() => {\n\t\t\t\t$container.hide();\n\t\t\t\tthis.mobileShowToolbar();\n\t\t\t});\n\n Voonto.$('.noticia').click(function () {\n Logger.info('[Breaking News] click Te-Interesa');\n let type = Voonto.$(this).data('type');\n\n Logger.info('[Breaking News] type: ', type);\n Logger.info('[Breaking News] href: ', Voonto.$(this).data('href'));\n\n window.location.href = Voonto.$(this).data('href');\n });\n\t\t}\n\t}\n\n\tswiper($elm)\n\t{\n\t\tLogger.info('Te-Interesa: Cargado JQuery-UI');\n\t\t$elm.find('.swiper-prev-row-bn').css('zIndex',99);\n\t\t$elm.find('.swiper-next-row-bn').css('zIndex',99);\n\t\t$elm.find('.swiper-wrapper').attr('style','min-height: 1px !important;');\n\n\t\tlet numElem = 0;\n\t\t$elm.find(\"[id^='j-swiper-slide-']\").each( () => {\n\t\t\tnumElem++;\n\t\t});\n\t\tLogger.info('Te-Interesa: Número elementos: ' + numElem);\n\n\t\tlet IntID = this.setTimer(numElem, $elm);\n\n\t\t$elm.find('.swiper-prev-row-bn').on('click', () => {\n\t\t\tLogger.info('Te-Interesa: Noticia anterior');\n\t\t\tclearInterval(IntID);\n\t\t\tIntID = this.setTimer(numElem, $elm);\n\t\t\tthis.changeSlide('anterior', numElem, $elm);\n\t\t});\n\n\t\t$elm.find('.swiper-next-row-bn').on('click', () => {\n\t\t\tLogger.info('Te-Interesa: Noticia siguiente');\n\t\t\tclearInterval(IntID);\n\t\t\tIntID = this.setTimer(numElem, $elm);\n\t\t\tthis.changeSlide('siguiente', numElem, $elm);\n\t\t});\n\t}\n\n setTimer (numElem, $elm) {\n\t\tlet i = setInterval( () => {\n\t\t\tLogger.info('Te-Interesa: setInterval - Noticia siguiente');\n\t\t\tthis.changeSlide('interval', numElem, $elm);\n\t\t}, 7000); // 7000ms = 7 segartSlider, 4000);\n\t\treturn i;\n\t}\n\n changeSlide (action, numElem, $elm) {\n\t\tlet id = Voonto.$(\"[id^='j-swiper-slide-']:visible\").data('pos');\n\t\tLogger.info('Te-Interesa: ID Visible: ' + id);\n\n\t\tlet newId = id - 1;\n\t\tif (action === 'anterior') {\n\t\t\tif (id <= 1) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\tnewId = id + 1;\n\t\t\tif (action === 'interval') {\n\t\t\t\tif (id === numElem) {\n\t\t\t\t\tnewId = 1;\n\t\t\t\t\tid = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (id >= numElem) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t$elm.find(\"[id^='j-swiper-slide-']\").each(function (i,e) {\n\t\t\tif (newId === Voonto.$(e).data('pos')) {\n\t\t\t\tVoonto.$(e).show();\n\t\t\t} else {\n\t\t\t\tVoonto.$(e).hide();\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport default TeInteresa;\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/article/te-interesa.js","/*\n * Función para depurar posiciones de publicidad\n */\n\nfunction debugVam($elm) {\n $elm.each(function(i,v) {\n try {\n let $v = Voonto.$(v);\n if ($v.data('debugVam')) {\n return;\n }\n\n $v.data('debugVam', 1);\n let media = window.vocento.config.vam.media;\n let posiciones;\n if (Voonto.is.mobile())\n posiciones = media.posicion_mobile;\n else {\n posiciones = media.posicion_desktop;\n }\n\n let position = v.getAttribute('data-voc-vam-position');\n $v.html(position);\n if (!$v.attr('id')) {\n $v.attr('id', position+'-id');\n }\n let posicion = posiciones[position];\n //Logger.debug(`[vam-debug] position: ${position}`, posicion);\n if (position && posicion && posicion.dimensiones) {\n let dims = JSON.parse(posicion.dimensiones);\n let minDim = null;\n let maxWidth = $(window).width();\n let minHeight = 2000;\n for(let i=dims.length-1; i>=0; i--) {\n if (maxWidth > dims[i][0] && minHeight > dims[i][1]) {\n minDim = dims[i];\n minHeight = dims[i][1];\n }\n }\n if (minDim) {\n //Logger.debug(`[vam-debug] position: ${position} - ${width}x${height}`, posicion);\n $v.css({\n \"width\": minDim[0]+\"px\", \"height\": minDim[1]+\"px\",\n \"background-color\": \"cyan\", \"text-align\": \"center\",\n \"padding-top\": \"25px\", \"display\": \"block\",\n });\n }\n }\n } catch (ex) {\n Logger.error('[vam-debug] exception:', v, ex);\n }\n });\n setTimeout(function(){\n $elm.trigger('vam:slotrendered');\n }, 3000);\n}\n\nfunction initVamDebug(app) \n{\n debugVam(Voonto.$('[data-voc-vam]'));\n app.on('voonto:reload', function(ev, elm) {\n try{\n debugVam(Voonto.$(elm).find('[data-voc-vam]'));\n } catch (ex) {\n Logger.error('[vam-debug] exception:', ex);\n }\n });\n}\n\nexport default initVamDebug;\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/vam-debug.js","function getPushStatusChecker(url, cb) {\n\n let id = \"pushStatusChecker\";\n let psc = document.querySelector(\"#\" + id);\n if (psc) {\n return cb(psc);\n }\n\n psc = document.createElement(\"iframe\");\n psc.src = url;\n psc.id = id;\n psc.style.display = \"none\";\n document.body.appendChild(psc);\n setTimeout(function() {\n cb(psc);\n }, 2000);\n setTimeout(function() {\n psc.parentNode.removeChild(psc);\n }, 4000);\n}\n\nexport function checkPushStatus(url, cb) {\n\n getPushStatusChecker(url, function(psc) {\n\n let prevHandler = window.onmessage;\n let response;\n window.onmessage = function(e) {\n if(typeof e.data === \"object\"){\n response = Object.assign({}, e.data);\n }else{\n response = {\n permission: false\n }\n }\n window.onmessage = prevHandler;\n cb(response);\n };\n psc.contentWindow.postMessage(\"checkPushStatus\", \"*\");\n });\n}\n\nexport function subscribeToChannels(channels, success, error){\n success = (typeof success == 'function') ? success : function(){};\n error = (typeof error == 'function') ? error : function(){};\n navigator.indigitall.subscribe(channels, success, error);\n}\n\n\nfunction success(success){\n Logger.debug(success);\n}\n\nfunction error(error){\n Logger.debug(error);\n}\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/push-notification-indigitall.js","const trackUtils = require('../../tracking/trackUtils');\n\nclass SectionLoadUtils \n{\n\n /**\n * Only modify current url to section\n * @param $elm\n */\n static changeUrl($elm) {\n let section = $elm.data('section');\n let segment = '';\n if (section === 'main') {\n segment = '/';\n } else {\n segment = $elm.data('section-url');\n }\n segment += window.location.search + window.location.hash;\n\n history.replaceState({\"section\": section}, section, segment);\n }\n\n /**\n * Change section name in header\n * @param $elm\n */\n static changeSectionName($elm) {\n Logger.info('[Header][Sticky] Change section name');\n if (Voonto.is.mobile() === true) {\n let $stickySectionName = Voonto.$('.cabecera-sticky .nombre-seccion>a');\n let nsChannel = window.vocento.tracking.comscore.voc_site;\n let nsLinkname = window.vocento.tracking.comscore.voc_se;\n let trackingMark = '#ns_campaign=logo-seccion&ns_mchannel='+nsChannel+'&ns_source=portada.portada&ns_linkname='+nsLinkname+'&ns_fee=0';\n \n if ($elm.data('section') === 'main') {\n $stickySectionName.attr(\"href\", '/' + trackingMark);\n $stickySectionName.text('Portada');\n } else {\n $stickySectionName.attr(\"href\", $elm.data('section-url') + trackingMark);\n $stickySectionName.text($elm.data('section-name'));\n }\n }else{\n let nsChannel = window.vocento.tracking.comscore.voc_site;\n\n let nsLinkname = window.vocento.tracking.comscore.voc_se;\n if ($elm.data('section') === 'main') {\n if (window.vocento.tracking.comscore.voc_s1.length > 0) {\n nsLinkname = nsLinkname + '.' + window.vocento.tracking.comscore.voc_s1;\n }\n }\n else {\n nsLinkname = $elm.data('tracking').comscore.voc_se;\n if ($elm.data('tracking').comscore.voc_s1.length > 0) {\n nsLinkname = nsLinkname + '.' + $elm.data('tracking').comscore.voc_s1;\n }\n }\n\n let trackingMark = '#ns_campaign=logo-seccion&ns_mchannel='+nsChannel+'&ns_source=portada.portada&ns_linkname='+nsLinkname+'&ns_fee=0';\n\n let $stickySectionName = Voonto.$('.cabecera-sticky .titulo-seccion>a');\n if ($elm.data('section') === 'main') {\n $stickySectionName.attr(\"href\", '/' + trackingMark);\n $stickySectionName.text('Portada');\n } else {\n $stickySectionName.attr(\"href\", $elm.data('section-url') + trackingMark);\n $stickySectionName.text($elm.data('section-name'));\n }\n }\n\n }\n\n /**\n * Unbind click on section title an bind on with last section\n * @param $elm\n */\n static onClickSectionName($elm) {\n if (Voonto.is.desktop()) {\n let $sectionName = $('.cabecera-sticky > span > .titulo-seccion');\n $sectionName.off('click');\n $sectionName.on('click', function () {\n history.replaceState({section: 'main', lastSectionView: $elm.data('section')}, 'main', '/'+window.location.search);\n });\n }\n else if (Voonto.is.mobile()) {\n let $sectionName = $('.nombre-seccion');\n $sectionName.off('click');\n $sectionName.on('click', function () {\n history.replaceState({section: 'main', lastSectionView: $elm.data('section')}, 'main', '/'+window.location.search);\n });\n }\n }\n\n /**\n * Listen all click events to replace history\n * @param $elm\n */\n static onClickSetHistoryHome($elm) {\n $elm.find('a').on('click', function () {\n let $link = Voonto.$(this);\n let target = $link.attr('target');\n if (target && target !== '_self') {\n return;\n }\n\n let lastSectionView = 'main';\n let $parent = $link.closest(\"[data-section]\");\n if ($parent) {\n lastSectionView = $parent.data('section');\n }\n history.replaceState({section: 'main', lastSectionView: lastSectionView}, 'main', '/'+window.location.search);\n });\n }\n\n static onClickTerrazaHome($elm) {\n $elm.find('a').on('click', function () {\n let $link = Voonto.$(this);\n let target = $link.attr('target');\n if (target && target !== '_self') {\n return;\n }\n \n let lastSectionView = 'main';\n let $prev = $link.parentsUntil('main').last().prev(\"[data-section]\");\n if ($prev) {\n lastSectionView = $prev.data('section');\n }\n\n history.replaceState({section: 'main', lastSectionView: lastSectionView}, 'main', '/'+window.location.search);\n });\n }\n\n static onClickSectionMenu($elm) {\n $elm.on('click', function () {\n $elm.next().slideToggle();\n });\n\n $elm.on('click', function () {\n let tipoAnimacion = $elm.data('boton-animado');\n Logger.info('tipoAnimacion ' + tipoAnimacion);\n switch (tipoAnimacion) {\n case 'menu':\n $elm.toggleClass('abierto');\n }\n });\n }\n\n static onClickMainHome($elm) {\n $elm.find('a').on('click', function () {\n window.scrollTo(0, 0);\n location.reload();\n });\n }\n\n /** populate vars into global scope and track with vtm */\n static tracking($elm) {\n try {\n let tracking = null;\n\n /** if is section, get tracking from data */\n if ($elm.data('section') !== 'main' && typeof $elm.data('tracking') !== 'undefined') {\n tracking = $elm.data('tracking');\n }\n\n /** if is main section, get data from main object */\n if ($elm.data('section') === 'main') {\n tracking = window.vocento.tracking;\n }\n\n Logger.info('Tracking section: ' + $elm.data('section'));\n\n Voonto.getInstance().when('vtm:ready').then(function() {\n TagManager.set({\n seccion: tracking.comscore.voc_se,\n subseccion1: tracking.comscore.voc_s1,\n subseccion2: tracking.comscore.voc_s2,\n subseccion3: tracking.comscore.voc_s3,\n subseccion4: tracking.comscore.voc_s4,\n titular: tracking.comscore.voc_tn,\n tipoDominio: tracking.comscore.voc_pr,\n edicion: tracking.comscore.voc_ed,\n tipoContenido: tracking.comscore.voc_tc,\n tipoContenidoA: tracking.comscore.voc_tcnew,\n plataformaContenido: tracking.comscore.voc_pl,\n sistemaPublicacion: tracking.comscore.voc_pu,\n fechaPrimeraPublicacion: tracking.comscore.voc_fep,\n fechaModificacion: tracking.comscore.voc_fem,\n idioma: tracking.comscore.voc_idi,\n IDEvolok: tracking.comscore.voc_pw_pid,\n firmaAutor: tracking.comscore.voc_au,\n origenContenido: tracking.comscore.voc_or,\n topics: tracking.comscore.voc_top,\n scrollInfinito: true,\n scrollInfinitoHome: $elm.data('section-seq'),\n scrollDireccion: window.vocento.tracking.comscore.scrollDireccion\n\n }).track();\n\n Logger.info('VTM dataLayer');\n Logger.info(TagManager.get());\n\n /** GTM datalayer scroll push event */\n window.dataLayer.push(\n {'event': 'scrollview',}\n );\n }, function (reason) {\n trackUtils.imgTrack('vtm-ready-error-section', reason);\n Logger.error('Error while vtm:ready promise: ', reason);\n });\n } catch (ex) {\n trackUtils.imgTrack('vtm-error-exception-section', ex);\n Logger.error('Exception while tracking section: ', ex);\n }\n }\n\n /**\n * return true if is back view\n * @return {boolean}\n */\n static isBackView() {\n return typeof history.state !== 'undefined' && history.state !== null && typeof history.state.lastSectionView !== 'undefined';\n }\n\n static disableHomeTopAds() {\n Voonto.$('[data-voc-vam-position]').each(function(k,v){\n let $v = Voonto.$(v);\n $v.attr('data-voc-vam-position-back', $v.attr('data-voc-vam-position'));\n $v.removeAttr('data-voc-vam').removeAttr('data-voc-vam-position');\n });\n }\n\n static enableHomeTopAds() {\n Voonto.$('[data-voc-vam-position-back]').each(function(k,v){\n let $v = Voonto.$(v);\n $v.attr('data-voc-vam-position', $v.attr('data-voc-vam-position-back'));\n $v.attr('data-voc-vam','');\n });\n }\n\n};\n\nexport default SectionLoadUtils;\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/home/sectionLoadUtils.js","module.exports = {\n\n /**\n * write img element with error to track exceptions in kibana\n * @param key\n * @param message\n * @return {HTMLImageElement}\n */\n imgTrack(key,message) {\n let\n today = new Date(),\n date = today.getFullYear()+'_'+(today.getMonth()+1)+'_'+today.getDate(),\n time = today.getHours() + \"_\" + today.getMinutes() + \"_\" + today.getSeconds(),\n dateTime = date+'-'+time,\n src = '/comun/img/dtm-track.jpg',\n querystring = encodeURI('key='+key+'&datetime='+dateTime+'&message='+message),\n img = document.createElement('img')\n ;\n img.src = src+'?'+querystring;\n return img;\n },\n exportRootVars() {\n for (let key in window.vocento.tracking.root) {\n if (vocento.tracking.root.hasOwnProperty(key)) {\n window[key] = vocento.tracking.root[key];\n }\n }\n },\n exportComscoreVars() {\n /** solo exportamos algunas variables, ya que VTM tiene prioridad sobre las vocvars y pisariamos sus valores */\n window.voc_ate = window.vocento.tracking.comscore.voc_ate;\n window.voc_top = window.vocento.tracking.comscore.voc_top;\n window.voc_site = window.vocento.tracking.comscore.voc_site;\n window.voc_tcnew = window.vocento.tracking.comscore.voc_tcnew;\n window.voc_tc = window.vocento.tracking.comscore.voc_tc;\n window.voc_se = window.vocento.tracking.comscore.voc_se;\n window.voc_au = window.vocento.tracking.comscore.voc_au;\n window.voc_s1 = window.vocento.tracking.comscore.voc_s1;\n window.voc_s2 = window.vocento.tracking.comscore.voc_s2;\n window.voc_s3 = window.vocento.tracking.comscore.voc_s3;\n window.voc_s4 = window.vocento.tracking.comscore.voc_s4;\n window.voc_npc = window.vocento.tracking.comscore.voc_npc;\n },\n setTrackBuscadorPlaySummum(TagManager){\n let main = window.document.getElementsByTagName('main');\n if (main.length >0 ) {\n let keywords = main[0].getAttribute('data-keywords');\n let num_entries = main[0].getAttribute('data-num-entries');\n let buscador = main[0].getAttribute('data-buscador');\n if (keywords !== null && keywords !== '') {\n TagManager.set({\n keyword: this.kebabCase(keywords),\n tipoBuscador: 'buscador-' + buscador,\n errorBusqueda: num_entries == 0 ? 'la-busqueda-no-obtuvo-ningun-resultado' : '',\n nResultados: num_entries\n });\n }\n }\n },\n kebabCase(string) {\n var result = string;\n // Convert camelCase capitals to kebab-case.\n result = result.replace(/([a-z][A-Z])/g, function(match) {\n return match.substr(0, 1) + '-' + match.substr(1, 1).toLowerCase();\n });\n // Convert non-camelCase capitals to lowercase.\n result = result.toLowerCase();\n // Convert non-alphanumeric characters to hyphens\n result = result.replace(/[^-a-z0-9]+/g, '-');\n // Remove hyphens from both ends\n result = result.replace(/^-+/, '').replace(/-$/, '');\n return result;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracking/trackUtils.js","const app = Voonto.getInstance();\nconst libPath = app.lookup('vocento.config.nibara').libPath;\nif (libPath === undefined) {\n throw 'nibara libPath config is empty';\n}\n\nlet\n cargaSticky = false,\n tamBody = 0,\n tamColC = Voonto.$('.mas-contenido-articulo').height();\n;\nexport function recalBody () {\n if (typeof Voonto.$('.hueco-imagen-principal ').height() === 'number') {\n tamBody = Voonto.$('.hueco-imagen-principal ').height() + Voonto.$('.cuerpo-texto').height();\n } else {\n tamBody = Voonto.$('.cuerpo-texto').height();\n }\n Logger.info('[Sticky] recalBody tamBody: ' + tamBody + ' tamColC: ' + tamColC);\n}\n\nexport function initSticky () {\n Logger.info('[Sticky] Function initSticky');\n recalBody();\n if (tamBody >= tamColC && !cargaSticky) {\n app.load(libPath + 'sticky-kit/sticky-kit.min.js').then(() => {\n Logger.info('[Sticky] initSticky');\n Voonto.$('[data-sticky-spacer]').each(function (i, e) {\n let spacer = Voonto.$(e).parent().data('spacer');\n if (typeof spacer !== 'undefined') {\n Logger.info('[Sticky] spacer: .', spacer);\n Voonto.$(e).stick_in_parent({\n offset_top: 20,\n spacer: '.' + spacer\n });\n }\n });\n cargaSticky = true;\n });\n }\n Logger.info('[Sticky] CargaSticky', cargaSticky);\n}\n\nexport function recalcSticky () {\n Logger.info('[Sticky] Function recalcSticky');\n recalBody();\n if (tamBody >= tamColC) {\n if (cargaSticky) {\n Logger.info('[Sticky] recalcSticky');\n Voonto.$('[data-sticky-spacer]').parent().attr('style','');\n Voonto.$(document.body).trigger('sticky_kit:recalc');\n } else {\n initSticky();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/sticky-kit.js","import {listNotifications} from \"../layout/vocuser-notifications\"\n\nexport function menusMobile() {\n let seccion = window.nibara.nTools.getSectionUrl();\n Logger.debug('[menuMobile] seccion: ', seccion);\n if (seccion === 'blogs') {\n Voonto.$('.navegacion a.opinion').addClass('activo');\n Voonto.$('.navegacion a.opinion').next().next().show();\n Voonto.$('.navegacion a.opinion').next().addClass('rotado');\n } else if (seccion !== 'summum' && seccion !== 'guia-restaurantes') {\n Voonto.$('.navegacion a').removeClass('activo');\n }\n \n let navID = $('body').data('edicion');\n /*if (navID) {\n Voonto.$('.navegacion a.' + navID).addClass('activo');\n Voonto.$('.navegacion a.' + navID).next().next().show();\n }*/\n Voonto.$('[data-abre-navegacion]').click(function () {\n Voonto.$('.navegacion').stop().animate({right: '0'}, 350, 'linear');\n });\n Voonto.$('[data-cierra-navegacion]').click(function () {\n Voonto.$('.navegacion').stop().animate({right: '100%'}, 350, 'linear');\n });\n Voonto.$('[data-abre-siguiente]').click(function () {\n Voonto.$(this).next().slideToggle();\n Voonto.$(this).toggleClass('rotado');\n });\n Voonto.$('[data-boton-animado]').on('click', function(){\n let tipoAnimacion = Voonto.$(this).data('boton-animado');\n Logger.info('tipoAnimacion '+ tipoAnimacion);\n switch(tipoAnimacion) {\n case 'menu':\n Voonto.$(this).toggleClass('abierto');\n }\n });\n\n /** menu usuario y alertas function *******************************************************/\n Voonto.$('[data-abre-menu-usuario-login]').click(function(){\n Voonto.$('[data-menu-usuario-login]').addClass('visible');\n Voonto.$('[data-menu-alerta-login]').removeClass('visible');\n });\n Voonto.$('[data-abre-menu-alerta-login]').click(function(){\n listNotifications().then(function () {\n Voonto.$('[data-menu-usuario-login]').removeClass('visible');\n Voonto.$('[data-menu-alerta-login]').addClass('visible');\n });\n });\n Voonto.$('[data-cerrar-menu-usuario-login]').click(function(){Voonto.$('[data-menu-usuario-login]').removeClass('visible')});\n Voonto.$('[data-cerrar-menu-alerta-login]').click(function(){Voonto.$('[data-menu-alerta-login]').removeClass('visible')});\n}\n\nexport function menusDesktop() {\n Logger.info ('[post-script] Init menusDesktop');\n let seccion = window.nibara.nTools.getSectionUrl();\n Logger.info ('[post-script] seccion: ' + seccion);\n\n var app = Voonto.getInstance();\n var siteType = app.lookup('vocento.site').type;\n if (siteType !== undefined) {\n Voonto.$('.main .titulo-seccion').css({\n 'top': '-61px',\n 'opacity': 1\n });\n } else {\n if (Voonto.$('.segundo-nivel').length && seccion !== 'summum') {\n Voonto.$('.main .titulo-seccion').css({\n 'top': '-91px',\n 'opacity': 1\n });\n } else {\n Voonto.$('.main .titulo-seccion').css('opacity', 1);\n }\n }\n\n Voonto.$('[data-mostrar]').on('click', function(){\n if (Voonto.$(this).data('mostrar') !== '') {\n Voonto.$(this).next().css('display', Voonto.$(this).data('mostrar'));\n } else {\n Voonto.$(this).next().show();\n }\n });\n\n Voonto.$('[data-cerrar]').on('click', function () {\n Voonto.$(this).parent().hide();\n });\n\n /** menu usuario y alertas function *******************************************************/\n let botonUsuarioLogin = Voonto.$('[data-abre-menu-usuario-login]'),\n botonAlertaLogin = Voonto.$('[data-abre-menu-alerta-login]'),\n menuUsuarioLogin = Voonto.$('[data-menu-usuario-login]'),\n menuAlertaLogin = Voonto.$('[data-menu-alerta-login]'),\n botonUsuarioLoginSticky = Voonto.$('[data-abre-menu-usuario-login-sticky]'),\n botonAlertaLoginSticky = Voonto.$('[data-abre-menu-alerta-login-sticky]'),\n menuUsuarioLoginSticky = Voonto.$('[data-menu-usuario-login-sticky]'),\n menuAlertaLoginSticky = Voonto.$('[data-menu-alerta-login-sticky]');\n\n botonUsuarioLogin.on('click', function() {\n Logger.info ('[post-script] botonUsuarioLogin click');\n Logger.info ('[post-script] botonUsuarioLogin: ' + botonUsuarioLogin);\n if(menuUsuarioLogin.hasClass('visible')) {\n Logger.info ('[post-script] menuUsuarioLogin has class visible');\n Voonto.$(this).removeClass('visible');\n menuUsuarioLogin.removeClass('visible');\n } else {\n Logger.info ('[post-script] menuUsuarioLogin not class visible');\n Voonto.$(this).addClass('visible');\n menuUsuarioLogin.addClass('visible');\n botonAlertaLogin.removeClass('visible');\n menuAlertaLogin.removeClass('visible');}\n });\n\n botonAlertaLogin.on('click', function() {\n Logger.info ('[post-script] botonAlertaLogin click');\n if(menuAlertaLogin.hasClass('visible')) {\n Voonto.$(this).removeClass('visible');\n menuAlertaLogin.removeClass('visible');\n } else {\n listNotifications().then(function () {\n Logger.debug('[vocuser-notifications] cambio menu');\n botonAlertaLogin.addClass('visible');\n menuAlertaLogin.addClass('visible');\n botonUsuarioLogin.removeClass('visible');\n menuUsuarioLogin.removeClass('visible');\n });\n }\n });\n\n botonUsuarioLoginSticky.on('click', function() {\n Logger.info ('[post-script] botonUsuarioLoginSticky click');\n if(menuUsuarioLoginSticky.hasClass('visible')) {\n Voonto.$(this).removeClass('visible');\n menuUsuarioLoginSticky.removeClass('visible');\n } else {\n Voonto.$(this).addClass('visible');\n menuUsuarioLoginSticky.addClass('visible');\n botonAlertaLoginSticky.removeClass('visible');\n menuAlertaLoginSticky.removeClass('visible');\n }\n });\n\n botonAlertaLoginSticky.on('click', function() {\n Logger.info ('[post-script] botonAlertaLoginSticky click');\n if(menuAlertaLoginSticky.hasClass('visible')) {\n Voonto.$(this).removeClass('visible');\n menuAlertaLoginSticky.removeClass('visible');\n } else {\n listNotifications().then(function () {\n botonAlertaLoginSticky.addClass('visible');\n menuAlertaLoginSticky.addClass('visible');\n botonUsuarioLoginSticky.removeClass('visible');\n menuUsuarioLoginSticky.removeClass('visible');\n });\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/home/menus.js","const app = Voonto.getInstance();\n\nvar baseurl = '/ajax/v2/api/v1/';\nconst vocUserNotificationsPath = app.lookup('vocento.config.nibara').vocUserNotifications;\nlet host = window.location.host;\nif (vocUserNotificationsPath !== undefined) {\n baseurl = vocUserNotificationsPath + baseurl;\n} else if ('abcblogs.abc.es' === host) {\n baseurl = 'https://www.abc.es' + baseurl;\n}\n\nvar checkNotifications = false;\n\nfunction notificationsLoad() {\n countNotifications();\n\n Voonto.$('.bloque-notificaciones, .notificaciones-capa').on('click', '.delete',function (ev) {\n ev.preventDefault();\n let id = Voonto.$(this).data('id');\n let ids = [];\n ids.push(id);\n deleteNotifications(ids);\n });\n\n Voonto.$('.bloque-notificaciones, .notificaciones-capa').on('click', '.cuerpo-notificacion .titulo a',function (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n let id = Voonto.$(this).data('id');\n let status = Voonto.$(this).data('status');\n let url = Voonto.$(this).attr('href');\n let ids = [];\n ids.push(id);\n if((status != 'read')&&(ids.length > 0)){\n confirmClickedUrl(ids,url,status) ;\n }else{\n window.location.href = url;\n }\n });\n\n}\n\nfunction countNotifications(){\n\n Voonto.$.ajax({\n url: baseurl + 'notifications/count',\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('count notifications: retrieve', textStatus);\n }).done(function (response) {\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n if(response.count > 0){\n Logger.debug('[vocuser-notifications] count notifications', response.count);\n Voonto.$('.user-logged-in > .alertas.notificaciones').append(''+response.count+'');\n }\n }else{\n Logger.error('[vocuser-notifications] count notifications', response);\n }\n });\n}\n\nfunction countNotificationsR2(){\n let daysRecents = 5;\n let today = new Date();\n let dateRecents = new Date(today.getTime() - (daysRecents * 24 * 3600 * 1000));\n Logger.debug('[post-script] Count notifications R2');\n Logger.debug('[post-script] baseurl: ' + baseurl + 'notifications/list');\n Voonto.$.ajax({\n url: baseurl + 'notifications/list',\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('count notifications: retrieve', textStatus);\n }).done(function (response) {\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n if(response.list.length > 0){\n Logger.debug('[vocuser-notifications] count notifications all', response.list.length);\n let recientes = [];\n response.list.forEach(function (notification) {\n let notDate = notification['timestamp'].split(/[^0-9]/);\n let notificationDate = new Date (notDate[0],notDate[1]-1,notDate[2],notDate[3],notDate[4],notDate[5]);\n if (dateRecents <= notificationDate && notification['status'] === 'received') {\n recientes.push(notification);\n }\n });\n Logger.debug('[vocuser-notifications] count notifications recents', recientes.length);\n if(recientes.length > 0){\n Voonto.$('.user-logged-in > .alertas.notificaciones').append(''+recientes.length+'');\n }\n }\n }else{\n Logger.error('[vocuser-notifications] count notifications', response);\n }\n });\n}\n\nfunction confirmNotifications(notifications, statusNotif){\n\n let events = [];\n let status = '';\n\n if(notifications.length > 0){\n events = notifications;\n status = statusNotif;\n }else{\n /* confirmamos todas las notificaciones, enviamos el id de una para recibir el request no vacio */\n let event = '0000';\n events.push(event);\n status = 'received,read';\n }\n\n let data = {\n 'notifications':events,\n 'status': status,\n 'all': 0\n };\n Logger.debug('[vocuser-notifications] confirm notifications ' + status, data);\n\n Voonto.$.ajax({\n type: 'post',\n url: baseurl + 'notifications/confirm',\n data: data,\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('confirm notifications: retrieve', textStatus);\n }).done(function (response) {\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n Logger.debug('[vocuser-notifications] confirm notifications OK');\n Voonto.$('.user-logged-in > .alertas.notificaciones, .todas-notificaciones').find('.globo, .nuevo').remove();\n }else{\n Logger.error('[vocuser-notifications] confirm notifications', response);\n }\n });\n}\n\nfunction listNotifications() {\n let hitsMenu = 4;\n let daysRecents = 5;\n let today = new Date();\n let dateRecents = new Date(today.getTime() - (daysRecents * 24 * 3600 * 1000));\n\n return new Promise((resolve, reject) => {\n\n app.when('vocuser:ready').then((gigyaUX) => {\n Logger.debug('[vocuser-notifications listNotifications] gigyaUX');\n let userType = gigyaUX.getUserType();\n if (userType !== 'anonimo') {\n\n Voonto.$.ajax({\n url: baseurl + 'notifications/list',\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function (jqXHR, textStatus, errorThrown) {\n Logger.error('list notifications: retrieve', textStatus);\n return reject(textStatus);\n }).done(function (response) {\n if (response && 'undefined' !== typeof response.code && response.code === 200) {\n Logger.debug('[vocuser-notifications listNotifications] response',response);\n let notificationsUrl = [];\n let notificationsNoUrl = [];\n let $list = Voonto.$('.login-alerta > .notificaciones-capa');\n $list.children().remove();\n if (response.list.length > 0) {\n let recientes = [];\n let anteriores = [];\n response.list.forEach(function (notification) {\n if(notification['status'] == 'received'){\n if (notification['content']['url'] != ''){\n notificationsUrl.push(notification['id']);\n }else{\n notificationsNoUrl.push(notification['id']);\n }\n }\n });\n response.list.slice(0,hitsMenu*2).forEach(function (notification) {\n let notDate = notification['timestamp'].split(/[^0-9]/);\n let notificationDate = new Date (notDate[0],notDate[1]-1,notDate[2],notDate[3],notDate[4],notDate[5]);\n if (dateRecents <= notificationDate) {\n recientes.push(notification);\n } else {\n anteriores.push(notification);\n }\n });\n if(recientes.length > 0) {\n $list.append('' +\n 'Recientes
' +\n ''\n );\n recientes.slice(0,hitsMenu).forEach(function (notification) {\n displayNotification($list.find('.bloque-notificaciones'), notification);\n });\n $list.append('');\n }\n if(anteriores.length > 0 && recientes.length < hitsMenu) {\n $list.append('' +\n 'Anteriores
' +\n ''\n );\n let items = recientes.length;\n anteriores.slice(0,hitsMenu).forEach(function (notification) {\n if(items < hitsMenu){\n displayNotification($list.find('.secundario .bloque-notificaciones'), notification);\n items = items + 1;\n }\n });\n $list.append('');\n }\n\n $list.append(\n '' +\n '' +\n 'Ver todas' +\n '' +\n '' +\n '' +\n '' +\n ''\n );\n } else {\n $list.append(\n 'No tienes ninguna notificación pendiente'\n );\n }\n if (notificationsUrl.length > 0){\n confirmNotifications(notificationsUrl, 'received,pending');\n\n }\n if (notificationsNoUrl.length > 0){\n confirmNotifications(notificationsNoUrl, 'received,read');\n }\n return resolve();\n }else{\n Logger.error('[vocuser-notifications] list notifications', response);\n return reject('Invalid response');\n }\n });\n }else{\n return resolve();\n }\n });\n\n function displayNotification($list, notification) {\n let type = '';\n let mchannel, source, linkname, vtmInfo = '';\n let title = 'Noticia';\n if(notification['content']['contentType'] == 'concurso' || notification['content']['contentType'] == 'evento'){\n type = 'evento';\n title = 'Concurso';\n }else if(notification['content']['contentType'] == 'encuesta'){\n type = 'encuesta';\n title = 'Encuesta';\n }\n if(notification['content']['url'].includes('/opinion/')) {\n title = 'Opinión';\n }\n if(notification['content']['contentType'] == 'noticia'){\n mchannel = 'autor';\n }else{\n mchannel = 'manual';\n }\n if(mchannel == 'autor'){\n source = notification['content']['categoryId'];\n linkname = notification['content']['author']['name'].toLowerCase().replace(/[^a-zA-Z0-9]+/g,'-');\n vtmInfo = mchannel+'-'+linkname;\n }else{\n source = notification['content']['contentId'];\n linkname = notification['content']['contentType'];\n vtmInfo = mchannel+'-'+source+'-'+linkname;\n }\n let tagging = '#ns_campaign=area-usuario-notif&ns_mchannel=' + mchannel + '&ns_source=' + source + '&ns_linkname=' + linkname + '&ns_fee=0';\n let authorBottom = '';\n\n if (notification['content'].hasOwnProperty('interests') && (notification['content']['interests'].length > 0)){\n if (notification['content']['interests'][0]['name'] !== ''){\n authorBottom = notification['content']['interests'][0]['name'];\n }else if(notification['content']['interests'][0]['subcategory_name'] != 'General'){\n authorBottom = notification['content']['interests'][0]['category_name'] + ' - ' + notification['content']['interests'][0]['subcategory_name'];\n }else{\n authorBottom = notification['content']['interests'][0]['category_name'];\n }\n }\n if(notification['content']['url'] != '') {\n $list.append(\n '' +\n ''+ title +'' + ((authorBottom != '')?('en '+ authorBottom):('por '+ notification['content']['author']['name'])) +'' +\n '' +\n '' +\n ((authorBottom != '')?('' + notification['content']['author']['name'] + ''):'') +\n '' +\n '' +\n ''\n );\n }else{\n $list.append(\n '' +\n ''+ title +'' + ((authorBottom != '')?('en '+ authorBottom):('por '+ notification['content']['author']['name'])) +'' +\n '' +\n '' + notification['content']['title'] + '
' +\n ((authorBottom != '')?('' + notification['content']['author']['name'] + ''):'') +\n '' +\n '' +\n ''\n );\n }\n }\n\n function dateFormat(fecha) {\n if (Voonto.is.safari()) {\n fecha = fecha.replace(/(\\+\\d\\d)(\\d\\d)/,function(a,b,c){return b + ':' + c;});\n }\n\n let date = new Date(fecha);\n Number.prototype.padLeft = function(base,chr){\n var len = (String(base || 10).length - String(this).length)+1;\n return len > 0? new Array(len).join(chr || '0')+this : this;\n }\n let dformat = [date.getDate().padLeft(),\n (date.getMonth()+1).padLeft(),\n date.getFullYear()].join('-') + ' ' +\n [date.getHours().padLeft(),\n date.getMinutes().padLeft(),\n date.getSeconds().padLeft()].join(':');\n\n return dformat;\n }\n });\n}\n\nfunction deleteNotifications(ids){\n let data = {'notifications':ids};\n Logger.debug('[vocuser-notifications] delete notifications', data);\n\n Voonto.$.ajax({\n type: 'post',\n url: baseurl + 'notifications/delete',\n data: data,\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('delete notifications: retrieve', textStatus);\n }).done(function (response) {\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n Logger.debug('[vocuser-notifications] delete notifications OK');\n ids.forEach(function (id) {\n Voonto.$('.bloque-notificaciones [data-id='+id+']').closest('article').remove();\n });\n checkNotificationsEmpty();\n }else{\n Logger.error('[vocuser-notifications] delete notifications', response);\n }\n });\n}\n\nfunction confirmClickedUrl(ids, url, status){\n\n let data = {\n 'notifications':ids,\n 'status' : status + ',read',\n 'all': 0\n };\n Logger.debug('[vocuser-notifications] confirm clicked url', data);\n\n Voonto.$.ajax({\n type: 'post',\n url: baseurl + 'notifications/confirm',\n data: data,\n dataType: 'json',\n xhrFields: {\n withCredentials: true\n },\n timeout: 10000\n }).fail(function(jqXHR, textStatus, errorThrown) {\n Logger.error('confirm clicked url: retrieve', textStatus);\n }).done(function (response) {\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n Logger.debug('[vocuser-notifications] confirm clicked url OK');\n window.location.href = url;\n }else{\n Logger.error('[vocuser-notifications] delete notifications', response);\n }\n });\n\n}\n\nfunction checkNotificationsEmpty() {\n let $list = Voonto.$('.notificaciones-capa');\n let $listwebpage = Voonto.$('.completa').last();\n Logger.debug('[vocuser-notifications] checkNotificationsEmpty', $list);\n\n if ($list.find('.bloque-notificaciones').children('article').length === 0 ) {\n $list.children().remove();\n $list.append(\n 'No tienes ninguna notificación pendiente'\n );\n }\n if($listwebpage.find('.bloque-notificaciones').children('article').length === 0 ) {\n $listwebpage.find('.bloque-notificaciones').closest('.completa').children().remove();\n Logger.debug('[vocuser-notifications] checkNotificationsEmpty webpage', $listwebpage.length);\n $listwebpage.append(\n 'No tienes ninguna notificación pendiente'\n );\n }\n}\n\nexport {notificationsLoad,listNotifications};\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/vocuser-notifications.js","export function stickyHeaderMobile() {\n var posicionAnterior = 0;\n var posCabecera = 'suelta';\n var estadoCabecera = 'visible';\n\n var navPortada = document.querySelector('body>.navegacion');\n var cabeceraPortada = document.querySelector('body>.cabecera');\n\n function fijarCabeceraSticky() {\n if(cabeceraPortada.parentElement.classList.contains('portada') || cabeceraPortada.parentElement.classList.contains('subportada')) {\n cabeceraPortada.classList.add('a-portada-seccion');\n }\n cabeceraPortada.classList.add('cabecera-sticky');\n cabeceraPortada.previousElementSibling.style.marginBottom = '50px';\n return 'fija';\n }\n\n function soltarCabeceraSticky() {\n if(cabeceraPortada.parentElement.classList.contains('portada') || cabeceraPortada.parentElement.classList.contains('subportada')) {\n cabeceraPortada.classList.remove('a-portada-seccion');\n }\n cabeceraPortada.classList.remove('cabecera-sticky');\n cabeceraPortada.previousElementSibling.style.marginBottom = '0px';\n return 'suelta';\n }\n\n function cabeceraStickyVisible() {\n cabeceraPortada.classList.add('visible');\n return 'visible';\n }\n \n function cabeceraStickyOculta() {\n cabeceraPortada.classList.remove('visible');\n return 'noVisible';\n }\n\n if(navPortada && cabeceraPortada) {\n var delay = false;\n var posicionCabecera = cabeceraPortada.offsetTop+cabeceraPortada.offsetHeight;\n setTimeout(function(){\n document.addEventListener('scroll',function(){\n if(delay) return;\n if(window.scrollY>posicionCabecera) {\n if(posCabecera==='suelta') posCabecera = fijarCabeceraSticky();\n if(window.scrollY>posicionAnterior && estadoCabecera==='visible') {\n estadoCabecera = cabeceraStickyOculta();\n }\n if(window.scrollY.navegacion');\n var menuStickyPortada = document.querySelector('.cabecera-sticky');\n var capaMenu = document.querySelector('.cabecera-sticky .capa-todo');\n var botonUsuarioLogin = document.querySelector('[data-abre-menu-usuario-login]'),\n menuUsuarioLogin = document.querySelector('[data-menu-usuario-login]'),\n botonAlertaLogin = document.querySelector('[data-abre-menu-alerta-login]'),\n menuAlertaLogin = document.querySelector('[data-menu-alerta-login]'),\n botonUsuarioLogout = document.querySelector('[data-abre-menu-usuario-logout]'),\n botonUsuarioLoginSticky = document.querySelector('[data-abre-menu-usuario-login-sticky]'),\n botonUsuarioLogoutSticky = document.querySelector('[data-abre-menu-usuario-logout-sticky]'),\n menuUsuarioLoginSticky = document.querySelector('[data-menu-usuario-login-sticky]'),\n botonAlertaLoginSticky = document.querySelector('[data-abre-menu-alerta-login-sticky]'),\n menuAlertaLoginSticky = document.querySelector('[data-menu-alerta-login-sticky]');\n\n function cabeceraStickyVisible() { \n menuStickyPortada.classList.add('visible');\n if (menuUsuarioLogin) {\n menuUsuarioLogin.classList.remove('visible');\n }\n if (menuAlertaLogin) {\n menuAlertaLogin.classList.remove('visible');\n }\n if (botonUsuarioLogin) {\n botonUsuarioLogin.classList.remove('visible');\n }\n if (botonUsuarioLogout) {\n botonUsuarioLogout.classList.remove('visible');\n }\n if (botonAlertaLogin) {\n botonAlertaLogin.classList.remove('visible');\n }\n return 'visible';\n }\n\n function cabeceraStickyOculta() {\n menuStickyPortada.classList.remove('visible');\n capaMenu.style.display = 'none';\n if (menuUsuarioLoginSticky) {\n menuUsuarioLoginSticky.classList.remove('visible');\n }\n if (menuAlertaLoginSticky) {\n menuAlertaLoginSticky.classList.remove('visible');\n }\n if (botonUsuarioLoginSticky) {\n botonUsuarioLoginSticky.classList.remove('visible');\n }\n if (botonUsuarioLogoutSticky) {\n botonUsuarioLogoutSticky.classList.remove('visible');\n }\n if (botonAlertaLoginSticky) {\n botonAlertaLoginSticky.classList.remove('visible');\n }\n return 'oculta';\n }\n\n if(capaMenu && navPortada && menuStickyPortada) {\n var delay = false;\n //if(capaMenu.previousElementSibling.classList.contains('todo')) capaMenu.previousElementSibling.addEventListener('click',function(){capaMenu.style.display = 'flex'});\n var posicionNavPortada = navPortada.getBoundingClientRect().bottom>0?cabeceraStickyOculta():cabeceraStickyVisible();\n document.addEventListener('scroll',function(){\n if(delay) return;\n if((navPortada.getBoundingClientRect().bottom)<=0 && posicionNavPortada=='oculta') {\n posicionNavPortada = cabeceraStickyVisible();\n }\n if((navPortada.getBoundingClientRect().top)>0 && posicionNavPortada=='visible') {\n posicionNavPortada = cabeceraStickyOculta();\n }\n delay=true;\n setTimeout(function() {\n delay = false;\n }, 100);\n });\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/sticky-header.js","let\n $document = Voonto.$(document),\n redesSticky = document.querySelector('.herramientas.fija'),\n marcador = document.querySelector('.marcador')\n;\nlet redes = redesSticky ? redesSticky.nextElementSibling : null;\nlet estadoRedes = 'relativo';\n\nfunction redesFijo() {\n redesSticky.classList.add('redesVisible')\n return 'fijo';\n}\n\nfunction redesRelativo() {\n redesSticky.classList.remove('redesVisible')\n return 'relativo';\n}\n\nvar handleScroll = nibara.nTools.throttle(50, function handleScroll() {\n //Logger.info('SocialToolbar handleScroll');\n \n var bottom = redes.getBoundingClientRect().bottom;\n var offset = (marcador) ? marcador.offsetHeight : 0;\n if (bottom <= offset && estadoRedes === 'relativo') {\n estadoRedes = redesFijo();\n }\n if (bottom > offset && estadoRedes === 'fijo') {\n estadoRedes = redesRelativo();\n }\n});\n\nclass SocialToolbar {\n constructor(form) {\n this.isEnabled = false;\n }\n\n enable() {\n Logger.info('SocialToolbar enable. isEnabled: ' + this.isEnabled);\n if (redesSticky && redes && !this.isEnabled) {\n handleScroll();\n $document.on('scroll', handleScroll);\n this.isEnabled = true;\n }\n }\n\n disable() {\n Logger.info('SocialToolbar disable. isEnabled: ' + this.isEnabled);\n if (this.isEnabled) {\n $document.off('scroll', handleScroll);\n this.isEnabled = false;\n redesSticky.classList.remove('redesVisible')\n }\n }\n}\nexport default SocialToolbar;\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/social-toolbar.js"],"sourceRoot":""}