{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6**************************************************************************","webpack:///layout-script.js","webpack:///webpack/bootstrap 9ca682b6c47ab8c7f2bf?677d**************************************************************************","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/vocuser-notifications.js?ea59********","webpack:///./src/scripts/layout/vam-debug.js?7e50**","webpack:///./src/scripts/home/menus.js?0ec3******","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-header.js?48d3**","webpack:///./src/scripts/layout/social-toolbar.js?9833","webpack:///./src/scripts/layout/sticky-kit.js?f8b5*"],"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","app","Voonto","getInstance","feature","window","nibara","logger","debug","libPath","lookup","ready","then","$","on","cmp","show","host","location","each","href","attr","indexOf","click","target","animate","scrollTop","offset","top","lazyLoad","LazyLoad","elements_selector","data_src","callback_error","el","removeClass","removeAttr","$datasrc","ev","handleScroll","is","mobile","menusMobile","tablet","vocento","tracking","comscore","voc_tc","menusDesktop","stickyHeaderMobile","stickyHeaderDesktop","load","stick_in_parent","offset_top","spacer","SocialToolbar","$stickyAds","enable","hide","delay","setTimeout","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","indigitalLoad","breakingNews","$urgente","$cerrarUrgente","type","teInteresa","showTeInteresa","teinteresa","shareLayer","inputShareLayer","labelShareLayer","inputFixedLayer","labelFixedLayer","containerShareLayer","containerShareFixedLayer","closeShareLayerHandler","prop","unbind","closeClickDocumentShareLayerHandler","closeFixedShareLayerHandler","contains","get","$this","one","gigyaUX","response","userType","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","url","parser","createElement","protocol","hostname","port","pathname","hash","origin","createCSData","$elm","serviceId","serviceReference","match","res","split","vocUserNotificationsPath","vocUserNotifications","normalizer","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","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","currentcontainer","oldnextcontainer","updateUserInterests","interests","interest","currentContainer","urlReferer","referrer","timeoutPopupAddData","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","onlyCount","countNotifications","ids","deleteNotifications","status","confirmClickedUrl","numNotifications","count","posicNotifications","elm","confirmNotifications","notifications","statusNotif","events","all","remove","listNotifications","hitsMenu","daysRecents","today","dateRecents","Promise","resolve","reject","displayNotification","$list","notification","mchannel","source","linkname","vtmInfo","title","contentUrl","isOpinion","toLowerCase","tagging","authorBottom","fecha","safari","a","b","Number","padLeft","base","chr","len","String","join","dformat","getHours","getMinutes","getSeconds","notificationsUrl","notificationsNoUrl","children","list","recientes","anteriores","slice","notDate","notificationDate","items","checkNotificationsEmpty","$listwebpage","last","valueNotificationsVocVtmInfo","regex","vocVtmInfo","newVocVtmInfo","isInteger","exec","num","isFinite","Math","floor","onlyCountNot","onlyCountNotifications","posicNotDefaultNot","posicNotDefaultNotifications","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","seccion","getSectionUrl","next","stop","right","slideToggle","toggleClass","tipoAnimacion","siteType","opacity","botonUsuarioLogin","botonAlertaLogin","menuUsuarioLogin","menuAlertaLogin","botonUsuarioLoginSticky","botonAlertaLoginSticky","menuUsuarioLoginSticky","menuAlertaLoginSticky","getPushStatusChecker","cb","psc","querySelector","style","body","appendChild","parentNode","removeChild","checkPushStatus","prevHandler","onmessage","assign","permission","contentWindow","postMessage","subscribeToChannels","channels","success","navigator","indigitall","subscribe","chromeVersion","getChromeVersion","appKey","init","workerPath","requestLocation","setDebugLog","onInitialized","onIndigitallInitialized","requestPushPermission","requestLocationPermission","onLocationUpdated","onError","raw","userAgent","permissions","device","InteresGroupAdd","InteresGroupDelete","responseUserInterestData","unshift","ID","topicsSubscribe","topicsUnsubscribe","gigyaux","getUserType","setExternalCode","vocUserGetData","pathName","topicsList","topics","DeleteTopics","topic","subscribed","substring","agronoma_user_interests","result","Resultado","values","InsertTopics","Intereses","Scopes","scopes","Ambito","coords","latitude","longitude","trackUtils","SectionLoadUtils","segment","replaceState","sectionUrl","sectionName","nsChannel","voc_site","nsLinkname","$stickySectionName","trackingMark","voc_s1","desktop","$sectionName","off","$link","$parent","$prev","parentsUntil","prev","scrollTo","reload","TagManager","set","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","voc_top","scrollInfinito","scrollInfinitoHome","scrollDireccion","slot","track","dataLayer","reason","imgTrack","k","message","time","dateTime","querystring","encodeURI","img","exportRootVars","exportComscoreVars","voc_ate","voc_npc","setTrackBuscadorPlaySummum","main","getElementsByTagName","keywords","num_entries","buscador","keyword","tipoBuscador","errorBusqueda","nResultados","string","setTrackLandingAdblocker","_window","isLogin","setTrackDetallesArchivo","page","$element","getElementById","$button","itemId","itemType","itemTitle","accionEcommerce","SKU","nombreProducto","categoriaProducto","unidadesProducto","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","recalBody","tamBody","tamColC","cargaSticky"],"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__(29);\n\t\n\tvar _socialToolbar2 = _interopRequireDefault(_socialToolbar);\n\t\n\tvar _stickyKit = __webpack_require__(31);\n\t\n\tvar _menus = __webpack_require__(20);\n\t\n\tvar _stickyHeader = __webpack_require__(27);\n\t\n\tvar _sectionLoadUtils = __webpack_require__(24);\n\t\n\tvar _sectionLoadUtils2 = _interopRequireDefault(_sectionLoadUtils);\n\t\n\tvar _teInteresa = __webpack_require__(11);\n\t\n\tvar _teInteresa2 = _interopRequireDefault(_teInteresa);\n\t\n\tvar _pushNotificationIndigitall = __webpack_require__(23);\n\t\n\tvar _vamDebug = __webpack_require__(14);\n\t\n\tvar _vamDebug2 = _interopRequireDefault(_vamDebug);\n\t\n\tvar _vocuserNotifications = __webpack_require__(12);\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\t/** get main vars **************************************************************************/\n\tvar app = Voonto.getInstance();\n\tvar feature = window.nibara.feature;\n\tvar Logger = nibara.logger;\n\t\n\tLogger.debug('script layout loaded');\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/** Enlace a política de cookies por JS en lugar de href ************************************/\n\tVoonto.ready.then(function () {\n\t $('.cmpLink').on('click', function () {\n\t Logger.debug('Cookies');\n\t Voonto.cmp.show();\n\t });\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 callback_error: function callback_error(el) {\n\t Logger.info(\"Error elemento lazyload\", el);\n\t $(el).removeClass('lzld').removeClass('initial').removeClass('error');\n\t $(el).removeAttr('data-was-processed');\n\t var $datasrc = $(el).attr('data-src');\n\t $(el).attr('src', $datasrc);\n\t }\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 } else if (host.indexOf('abcblogs') > -1) {\n\t location = 'https://www.abc.es' + location;\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\tif (host.indexOf('abcblogs') == -1) {\n\t (0, _pushNotificationIndigitall.indigitalLoad)(app, document);\n\t}\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 app.when('vocuser:getusertype').then(function (response) {\n\t var userType = response['responseGetUserType'];\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\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\t\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 var Logger = nibara.logger;\n\t\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 === 'bienestar') {\n\t serviceReference = $elm.parent().find('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] createCSData2 - serviceReference >> ' + serviceReference);\n\t /*serviceReference = serviceReference.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g, \"\").replace(/ /g,\"_\");*/\n\t serviceReference = window.nibara.nTools.normalizer(serviceReference, true).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 Logger = nibara.logger;\n\t\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 var Logger = nibara.logger;\n\t\n\t var btn = $elm.data('btn');\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 var Logger = nibara.logger;\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 var Logger = nibara.logger;\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 var Logger = nibara.logger;\n\t\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 var Logger = nibara.logger;\n\t\n\t Logger.debug('check interest request');\n\t var urlReferer = document.referrer;\n\t var host = window.location.host;\n\t\n\t var baseurl = '/ajax/v2/api/v1/';\n\t if (vocUserNotificationsPath !== undefined) {\n\t baseurl = vocUserNotificationsPath + baseurl;\n\t } else if (host.indexOf('abcblogs') > -1) {\n\t baseurl = 'https://www.abc.es' + baseurl;\n\t }\n\t\n\t Logger.debug('[post-script] baseurl: ' + baseurl);\n\t\n\t var timeoutPopupAddData = 0;\n\t if (urlReferer.indexOf(\"registro/validacion-mail.html\") > -1) {\n\t var originRegister = window.location.href;\n\t var originText = 'register';\n\t if (originRegister.indexOf(\"/opinion/\") > -1 && originRegister.indexOf(\".html\") > -1) {\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.indexOf(\"/micuenta/\") === -1) {\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 Logger = nibara.logger;\n\t\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/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */\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 Logger = nibara.logger;\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\tvar Logger = nibara.logger;\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\tvar Logger = nibara.logger;\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 Logger = nibara.logger;\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 Logger = nibara.logger;\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/* 12 */\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\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\tvar onlyCountNot = app.lookup('vocento.config.nibara').onlyCountNotifications;\n\tvar onlyCount = false;\n\tif (onlyCountNot !== undefined) {\n\t onlyCount = true;\n\t}\n\t\n\tvar posicNotDefaultNot = app.lookup('vocento.config.nibara').posicNotDefaultNotifications;\n\tvar posicNotifications = 'default';\n\tif (posicNotDefaultNot !== undefined) {\n\t posicNotifications = 'other';\n\t}\n\t\n\tvalueNotificationsVocVtmInfo();\n\t\n\tfunction notificationsLoad() {\n\t var Logger = nibara.logger;\n\t Logger.debug('[vocuser-notifications] init count notifications - onlyCount: ', onlyCount);\n\t countNotifications();\n\t\n\t if (onlyCount === false) {\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 var id = Voonto.$(this).data('id');\n\t var status = Voonto.$(this).data('status');\n\t var url = Voonto.$(this).data('url');\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\t\n\tfunction countNotifications() {\n\t var Logger = nibara.logger;\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 var numNotifications = '0';\n\t if (response && 'undefined' !== typeof response.code && response.code === 200) {\n\t Logger.debug('[vocuser-notifications] response.count: ', response.count);\n\t Logger.debug('[vocuser-notifications] posicNotifications: ', posicNotifications);\n\t if (response.count > 0) {\n\t numNotifications = response.count;\n\t if (posicNotifications === 'default') {\n\t Logger.debug('[vocuser-notifications] count notifications', response.count, ' >>> posicNotifications: ', posicNotifications);\n\t Voonto.$('.user-logged-in > .alertas.notificaciones').append('' + response.count + '');\n\t } else {\n\t Logger.debug(' vocuser-notifications] --- lenght: ', Voonto.$('.alertas.notificaciones').length);\n\t Voonto.$('.alertas.notificaciones').each(function () {\n\t Logger.debug('[vocuser-notifications] count notifications', response.count, ' >>> posicNotifications: ', posicNotifications);\n\t Voonto.$(this).append('' + response.count + '');\n\t });\n\t }\n\t }\n\t } else {\n\t Logger.error('[vocuser-notifications] count notifications', response);\n\t }\n\t var elm = Voonto.$('.user-logged-in > .alertas.notificaciones');\n\t if (elm) {\n\t elm.attr('data-voc-vtm-info', numNotifications);\n\t }\n\t });\n\t}\n\t\n\tfunction countNotificationsR2() {\n\t var Logger = nibara.logger;\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 var Logger = nibara.logger;\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 Logger = nibara.logger;\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-ready] gigyaUX', gigyaUX);\n\t app.when('vocuser:getusertype').then(function (response) {\n\t Logger.debug('[vocuser-notifications listNotifications] gigyaUX');\n\t var userType = response['responseGetUserType'];\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\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 var contentUrl = notification['content']['url'];\n\t var isOpinion = contentUrl.indexOf('/opinion/') > -1;\n\t\n\t if (notification['content']['contentType'] == 'concurso') {\n\t type = 'evento';\n\t title = 'Concurso';\n\t } else if (notification['content']['contentType'] == 'evento') {\n\t type = 'evento';\n\t title = 'Evento';\n\t } else if (notification['content']['contentType'] == 'encuesta') {\n\t type = 'encuesta';\n\t title = 'Encuesta';\n\t }\n\t if (isOpinion) {\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 (contentUrl != '') {\n\t $list.append('
' + '
' + title + '' + (authorBottom != '' ? 'en ' + authorBottom : 'por ' + notification['content']['author']['name']) + '
' + '' + '
' + notification['content']['title'] + '
' + (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 Logger = nibara.logger;\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 var Logger = nibara.logger;\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 Logger = nibara.logger;\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\tfunction valueNotificationsVocVtmInfo() {\n\t Voonto.$('.user-logged-in > .alertas.notificaciones').on('click', function () {\n\t var regex = /^abrir-\\d$/gm;\n\t var elm = $(this);\n\t var vocVtmInfo = elm.attr('data-voc-vtm-info');\n\t var newVocVtmInfo = '';\n\t\n\t if (isInteger(parseInt(vocVtmInfo))) {\n\t newVocVtmInfo = 'abrir-' + vocVtmInfo;\n\t } else {\n\t newVocVtmInfo = regex.exec(vocVtmInfo) ? vocVtmInfo.replace('abrir', 'cerrar') : vocVtmInfo.replace('cerrar', 'abrir');\n\t }\n\t elm.attr('data-voc-vtm-info', newVocVtmInfo);\n\t });\n\t}\n\t/** Resolved IE Fails **/\n\tfunction isInteger(num) {\n\t Number.isInteger = Number.isInteger || function (value) {\n\t return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n\t };\n\t\n\t return Number.isInteger(num);\n\t}\n\texports.notificationsLoad = notificationsLoad;\n\texports.listNotifications = listNotifications;\n\n/***/ }),\n/* 13 */,\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\t/*\n\t * Función para depurar posiciones de publicidad\n\t */\n\tfunction debugVam($elm) {\n\t var Logger = nibara.logger;\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 var Logger = nibara.logger;\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/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */\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__(12);\n\t\n\tfunction menusMobile() {\n\t var Logger = nibara.logger;\n\t\n\t var seccion = window.nibara.nTools.getSectionUrl();\n\t Logger.debug('[post-script] 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 !== 'play' && seccion !== 'summum' && seccion !== 'guia-restaurantes') {\n\t Voonto.$('.navegacion a').removeClass('activo');\n\t }\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('[post-script] 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 var Logger = nibara.logger;\n\t\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 Voonto.$('[data-menu-usuario-login-sticky]').removeClass('visible');\n\t Voonto.$('[data-abre-menu-usuario-login-sticky]').removeClass('visible');\n\t Voonto.$('[data-menu-alerta-login-sticky]').removeClass('visible');\n\t Voonto.$('[data-abre-menu-alerta-login-sticky]').removeClass('visible');\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 Logger.info('[post-script] boton UsuarioLogin', botonUsuarioLogin);\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/* 21 */,\n/* 22 */,\n/* 23 */\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\texports.indigitalLoad = indigitalLoad;\n\tfunction success(success) {\n\t var Logger = nibara.logger;\n\t Logger.debug(success);\n\t}\n\t\n\tfunction error(error) {\n\t var Logger = nibara.logger;\n\t Logger.debug(error);\n\t}\n\t\n\tfunction getPushStatusChecker(url, cb) {\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 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 indigitalLoad(app, document) {\n\t var Logger = nibara.logger;\n\t var chromeVersion = getChromeVersion();\n\t Logger.debug(\"[indigitall] Chrome Version: \", chromeVersion);\n\t if (chromeVersion > 41) {\n\t app.load('/indigitall/sdk.min.js?v=20200518110000').then(function () {\n\t var host = window.location.host;\n\t var appKey = '';\n\t if (host.indexOf('sevilla.abc.es') > -1) {\n\t appKey = '1213247813562e12bccb8137.99837995';\n\t } else if (host.indexOf('lavozdigital.es') > -1) {\n\t appKey = '2064175608562e537c6e2369.80569469';\n\t } else {\n\t appKey = '18484694655613f1f2334409.61215592';\n\t }\n\t Logger.debug(\"[indigitall] appKey: \", appKey);\n\t\n\t indigitall.init({\n\t appKey: appKey,\n\t workerPath: '/indigitall/worker.min.js?v=20200518110000',\n\t requestLocation: true,\n\t setDebugLog: true,\n\t onInitialized: onIndigitallInitialized,\n\t requestPushPermission: requestPushPermission,\n\t requestLocationPermission: requestLocationPermission,\n\t onLocationUpdated: onLocationUpdated,\n\t onError: onError\n\t });\n\t });\n\t }\n\t}\n\t\n\tfunction getChromeVersion() {\n\t var raw = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n\t return raw ? parseInt(raw[2], 10) : false;\n\t}\n\t\n\tfunction onIndigitallInitialized(permissions, device) {\n\t var Logger = nibara.logger;\n\t Logger.debug(\"[indigitall] Push Permission: \", permissions.push);\n\t Logger.debug(\"[indigitall] Location Permission: \", permissions.location);\n\t Logger.debug(\"[indigitall] Device: \", device);\n\t\n\t Voonto.ready.then(function (app) {\n\t app.when('vocuser:userinterestdata').then(function (response) {\n\t Logger.debug('[indigitall] vocuser:userinterestdata: ' + response);\n\t var InteresGroupAdd = [];\n\t var InteresGroupDelete = [];\n\t //Verificamos si existe.\n\t if (response.responseUserInterestData) {\n\t Logger.debug('[indigitall] response.responseUserInterestData: ' + response.responseUserInterestData);\n\t if (response.responseUserInterestData.length > 0) {\n\t //Recorremos los intereses\n\t response.responseUserInterestData.forEach(function (element) {\n\t //Miramos si es activo o no\n\t if (element.status == true) InteresGroupAdd.unshift(element.ID.replace(\".\", \"\"));else InteresGroupDelete.unshift(element.ID.replace(\".\", \"\"));\n\t });\n\t //Validamos y eliminamos o añadimos al grupo.\n\t if (InteresGroupAdd.length > 0) {\n\t indigitall.topicsSubscribe(InteresGroupAdd, function (response) {\n\t Logger.debug('[indigitall] InteresGroupAdd::' + response);\n\t }, function (response) {\n\t Logger.debug('[indigitall] InteresGroupAdd::' + response);\n\t });\n\t }\n\t if (InteresGroupDelete.length > 0) indigitall.topicsUnsubscribe(InteresGroupDelete, function (response) {\n\t Logger.debug('[indigitall] InteresGroupDelete::' + response);\n\t }, function (response) {\n\t Logger.debug('[indigitall] InteresGroupDelete::' + response);\n\t });\n\t }\n\t }\n\t });\n\t\n\t app.when('vocuser:ready').then(function (gigyaux) {\n\t Logger.debug('[indigitall] vocuser:ready: ' + gigyaux);\n\t if (gigyaux.getUserType() === \"registrado\") {\n\t Logger.debug('[indigitall] gigyaux.getUserType: ' + gigyaux.getUserType());\n\t indigitall.topicsSubscribe(['registrado'], function (response) {\n\t Logger.debug('[indigitall] RegistradoAdd::' + response);\n\t }, function (response) {\n\t Logger.debug('[indigitall] RegistradoAdd::' + response);\n\t });\n\t indigitall.setExternalCode(gigyaux.vocUserGetData('uid'), function (device) {\n\t Logger.debug('[indigitall] setExternalCode: ok usuario registrado: ' + device);\n\t }, function (error) {\n\t Logger.debug('[indigitall] setExternalCode: error usuario registrado:' + error);\n\t });\n\t } else {\n\t Logger.debug('[indigitall] gigyaux.getUserType: ' + gigyaux.getUserType());\n\t indigitall.topicsUnsubscribe(['registrado'], function (response) {\n\t Logger.debug('[indigitall] RegistradoDelete::' + response);\n\t }, function (response) {\n\t Logger.debug('[indigitall] RegistradoDelete::' + response);\n\t });\n\t\n\t indigitall.setExternalCode(\"\", function (device) {\n\t Logger.debug('[indigitall] setExternalCode: ok usuario anonimo: ' + device);\n\t }, function (error) {\n\t Logger.debug('[indigitall] setExternalCode: error usuario anonimo:' + error);\n\t });\n\t }\n\t });\n\t\n\t var pathName = window.location.pathname;\n\t Logger.debug('[indigitall] pathName: ' + pathName);\n\t if (/^\\/agronoma/.test(pathName)) {\n\t Logger.debug('[indigitall] topicsList and agronoma user interests');\n\t indigitall.topicsList(function (topics) {\n\t var DeleteTopics = [];\n\t topics.forEach(function (topic) {\n\t if (topic.subscribed)\n\t //AGR y GAN son las categorias de Agricultura y Ganaderia.\n\t if (topic.code.substring(0, 3) == \"AGR\" || topic.code.substring(0, 3) == \"GAN\") DeleteTopics.push(topic.code);\n\t });\n\t if (DeleteTopics.length > 0) indigitall.topicsUnsubscribe(DeleteTopics);\n\t });\n\t\n\t agronoma_user_interests.then(function (result) {\n\t Logger.debug('[indigitall] result.interests: ' + result.interests);\n\t var Resultado = [];\n\t if (\"undefined\" != typeof result.interests && null != result.interests) {\n\t Resultado = Object.values(result.interests);\n\t }\n\t\n\t var InsertTopics = [];\n\t Resultado.forEach(function (Intereses) {\n\t var Scopes = [];\n\t if (Array.isArray(Intereses.scopes)) Scopes = Intereses.scopes;else Scopes = Object.values(Intereses.scopes);\n\t\n\t Scopes.forEach(function (Ambito) {\n\t InsertTopics.push((Intereses.code + Ambito.id).replace(\".\", \"\"));\n\t });\n\t });\n\t\n\t if (InsertTopics.length > 0) indigitall.topicsSubscribe(InsertTopics);\n\t });\n\t }\n\t });\n\t}\n\t\n\tfunction onLocationUpdated(location) {\n\t var Logger = nibara.logger;\n\t Logger.debug(\"[indigitall] Location\\n \\t - Latitude:\" + location.coords.latitude + \"\\n \\t - Longitude: \" + location.coords.longitude);\n\t}\n\t\n\tfunction onError(error) {\n\t var Logger = nibara.logger;\n\t Logger.debug('[indigitall] error: ' + error);\n\t}\n\t\n\tfunction requestPushPermission(permission) {\n\t var Logger = nibara.logger;\n\t Logger.debug(\"[indigitall] RequestPushPermission: \" + permission.state);\n\t}\n\t\n\tfunction requestLocationPermission(permission) {\n\t var Logger = nibara.logger;\n\t Logger.debug(\"[indigitall] RequestLocationPermission: \" + permission.state);\n\t}\n\n/***/ }),\n/* 24 */\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__(25);\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 * Only modify current url to section\n\t * @param $elm\n\t */\n\t\n\t }, {\n\t key: 'changeUrlInGallery',\n\t value: function changeUrlInGallery($elm) {\n\t var section = 'imagen' + $elm.data('imagen');\n\t var segment = location.protocol + '//' + location.host + location.pathname;\n\t segment = segment.replace('.html', '.html#' + section);\n\t\n\t history.replaceState({ \"section\": segment }, segment, 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 var Logger = nibara.logger;\n\t Logger.info('[Header][Sticky] Change section name');\n\t var section = $elm.data('section');\n\t if (!section) {\n\t return;\n\t }\n\t\n\t var sectionUrl = $elm.data('section-url');\n\t var sectionName = $elm.data('section-name');\n\t var comscore = nibara.app.lookup('vocento.tracking.comscore');\n\t var nsChannel = comscore.voc_site;\n\t var nsLinkname = comscore.voc_se;\n\t\n\t if (Voonto.is.mobile() === true) {\n\t var $stickySectionName = Voonto.$('.cabecera-sticky .nombre-seccion>a');\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 (section === 'main') {\n\t $stickySectionName.attr(\"href\", '/' + trackingMark);\n\t $stickySectionName.text('Portada');\n\t } else if (sectionUrl && sectionName) {\n\t $stickySectionName.attr(\"href\", sectionUrl + trackingMark);\n\t $stickySectionName.text(sectionName);\n\t }\n\t } else {\n\t if (section === 'main') {\n\t if (comscore.voc_s1) {\n\t nsLinkname = nsLinkname + '.' + comscore.voc_s1;\n\t }\n\t } else {\n\t var tracking = $elm.data('tracking');\n\t if (tracking && typeof tracking.comscore !== 'undefined') {\n\t nsLinkname = tracking.comscore.voc_se;\n\t if (tracking.comscore.voc_s1) {\n\t nsLinkname = nsLinkname + '.' + tracking.comscore.voc_s1;\n\t }\n\t }\n\t }\n\t\n\t var _$stickySectionName = Voonto.$('.cabecera-sticky .titulo-seccion>a');\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 (section === 'main') {\n\t _$stickySectionName.attr(\"href\", '/' + _trackingMark);\n\t _$stickySectionName.text('Portada');\n\t } else if (sectionUrl && sectionName) {\n\t _$stickySectionName.attr(\"href\", sectionUrl + _trackingMark);\n\t _$stickySectionName.text(sectionName);\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Only modify current url to gallery id\n\t * @param $elm\n\t */\n\t\n\t }, {\n\t key: 'changeSectionNameInGallery',\n\t value: function changeSectionNameInGallery($elm) {\n\t var Logger = nibara.logger;\n\t Logger.info('[Header][Sticky] Change section name in gallery');\n\t if (Voonto.is.mobile() === true) {\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 } 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\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\n\t var _trackingMark2 = '#ns_campaign=logo-seccion&ns_mchannel=' + _nsChannel + '&ns_source=portada.portada&ns_linkname=' + _nsLinkname + '&ns_fee=0';\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 var Logger = nibara.logger;\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 if (!Voonto.$(this).hasClass('cmpLink')) {\n\t window.scrollTo(0, 0);\n\t location.reload();\n\t }\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 var Logger = nibara.logger;\n\t try {\n\t var section = $elm.data('section');\n\t var tracking = $elm.data('tracking');\n\t var comscore;\n\t\n\t Logger.info('Tracking section: ' + section);\n\t /** if is main section, get data from main object */\n\t if (section === 'main') {\n\t comscore = window.vocento.tracking.comscore;\n\t } else if (tracking && typeof tracking.comscore !== 'undefined') {\n\t comscore = tracking.comscore;\n\t } else {\n\t return;\n\t }\n\t\n\t nibara.app.when('vtm:ready').then(function () {\n\t TagManager.set({\n\t seccion: comscore.voc_se,\n\t subseccion1: comscore.voc_s1,\n\t subseccion2: comscore.voc_s2,\n\t subseccion3: comscore.voc_s3,\n\t subseccion4: comscore.voc_s4,\n\t titular: comscore.voc_tn,\n\t tipoDominio: comscore.voc_pr,\n\t edicion: comscore.voc_ed,\n\t tipoContenido: comscore.voc_tc,\n\t tipoContenidoA: comscore.voc_tcnew,\n\t plataformaContenido: comscore.voc_pl,\n\t sistemaPublicacion: comscore.voc_pu,\n\t fechaPrimeraPublicacion: comscore.voc_fep,\n\t fechaModificacion: comscore.voc_fem,\n\t idioma: comscore.voc_idi,\n\t IDEvolok: comscore.voc_pw_pid,\n\t firmaAutor: comscore.voc_au,\n\t origenContenido: comscore.voc_or,\n\t topics: 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\n\t if ($elm.data('imagen')) {\n\t TagManager.set({ slot: $elm.data('imagen') });\n\t }\n\t\n\t TagManager.track();\n\t\n\t Logger.info('VTM dataLayer', 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/* 25 */\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 console.error(img);\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 if (keywords !== null && keywords !== '') {\n\t var num_entries = main[0].getAttribute('data-num-entries');\n\t var buscador = main[0].getAttribute('data-buscador');\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 setTrackLandingAdblocker: function setTrackLandingAdblocker(TagManager) {\n\t if (-1 === ['/suscripcion-ok/', '/suscripcion-ko/'].indexOf(window.location.pathname)) {\n\t return false;\n\t }\n\t var _window = window,\n\t Voonto = _window.Voonto;\n\t\n\t\n\t Voonto.getInstance().when('vocuser:ready').then(function (gigyaUX) {\n\t var isLogin = typeof gigyaUX !== 'undefined' && gigyaUX.getUserType() !== 'anonimo';\n\t var voc_tn = '';\n\t if (['/suscripcion-ok/'].indexOf(window.location.pathname) > -1) {\n\t voc_tn = isLogin ? 'us-logado' : 'us-no-logado';\n\t }\n\t if (['/suscripcion-ko/'].indexOf(window.location.pathname) > -1) {\n\t voc_tn = isLogin ? 'us-sus-logado' : 'us-sus-no-logado';\n\t }\n\t window.voc_tn = voc_tn;\n\t TagManager.set({ titular: voc_tn }).track();\n\t });\n\t\n\t return true;\n\t },\n\t setTrackDetallesArchivo: function setTrackDetallesArchivo(TagManager) {\n\t var body = window.document.getElementsByTagName('body');\n\t if (body.length > 0) {\n\t var page = body[0].getAttribute('data-layout');\n\t if ('detail' === page) {\n\t var $element = window.document.getElementById('use-type-data');\n\t var $button = $element.querySelectorAll('[data-add-to-cart]');\n\t if ($button.length > 0) {\n\t var itemId = $button[0].getAttribute('data-id');\n\t var itemType = $button[0].getAttribute('data-type');\n\t var itemTitle = window.vocento.tracking.comscore.voc_tn;\n\t\n\t if (window.vocento.tracking.comscore.voc_tn.indexOf(\".\") > -1) {\n\t itemTitle = window.voc_tn.substring(0, voc_tn.indexOf(\".\"));\n\t }\n\t\n\t TagManager.set({\n\t accionEcommerce: \"vista-de-producto\",\n\t SKU: itemId,\n\t nombreProducto: 'producto-' + itemTitle,\n\t categoriaProducto: itemType,\n\t unidadesProducto: \"1\"\n\t });\n\t }\n\t }\n\t }\n\t }\n\t};\n\n/***/ }),\n/* 26 */,\n/* 27 */\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/* 28 */,\n/* 29 */\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 var Logger = nibara.logger;\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 var Logger = nibara.logger;\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 var Logger = nibara.logger;\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/* 30 */,\n/* 31 */\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\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\tvar cargaSticky = false,\n\t tamBody = 0,\n\t tamColC = Voonto.$('.mas-contenido-articulo').height();\n\t;\n\tfunction recalBody() {\n\t var Logger = nibara.logger;\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 var Logger = nibara.logger;\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 var Logger = nibara.logger;\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/******/ ])\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 9ca682b6c47ab8c7f2bf","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 {indigitalLoad} 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\n/** get main vars **************************************************************************/\nconst app = Voonto.getInstance();\nconst feature = window.nibara.feature;\nconst Logger = nibara.logger;\n\nLogger.debug('script layout loaded');\n\n\nconst libPath = app.lookup('vocento.config.nibara').libPath;\nif (libPath === undefined) {\n throw 'nibara libPath config is empty';\n}\n/** Enlace a política de cookies por JS en lugar de href ************************************/\nVoonto.ready.then(function() {\n $('.cmpLink').on('click', function () {\n Logger.debug('Cookies');\n Voonto.cmp.show();\n });\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 callback_error: (el)=>{\n Logger.info(\"Error elemento lazyload\", el);\n $(el).removeClass('lzld').removeClass('initial').removeClass('error');\n $(el).removeAttr('data-was-processed');\n var $datasrc = $(el).attr('data-src');\n $(el).attr('src',$datasrc);\n }\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 } else if (host.indexOf('abcblogs') > -1) {\n location = 'https://www.abc.es'+location;\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 ************************************************************/\nif(host.indexOf('abcblogs') == -1) {\n indigitalLoad(app, document);\n}\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(function(gigyaUX) {\n Logger.debug('[vocuser-ready] gigyaUX',gigyaUX);\n app.when('vocuser:getusertype').then(function(response) {\n let userType = response['responseGetUserType'];\n if (userType !== 'anonimo') {\n Logger.debug('[vocuser-ready] usuario logado',gigyaUX);\n notificationsLoad();\n checkInterest();\n }\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();\n\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 const Logger = nibara.logger;\n\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 === 'bienestar'){\n serviceReference = $elm.parent().find('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] createCSData2 - serviceReference >> ' + serviceReference);\n /*serviceReference = serviceReference.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g, \"\").replace(/ /g,\"_\");*/\n serviceReference = window.nibara.nTools.normalizer(serviceReference, true).replace(/[\\u0300-\\u036F]/g, \"\").replace(/ /g,\"_\");\n\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 const Logger = nibara.logger;\n\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 const Logger = nibara.logger;\n\n var btn = $elm.data('btn');\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\n\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 const Logger = nibara.logger;\n\n Logger.debug('check interest request');\n let urlReferer = document.referrer;\n let host = window.location.host;\n\n let baseurl = '/ajax/v2/api/v1/';\n if (vocUserNotificationsPath !== undefined) {\n baseurl = vocUserNotificationsPath + baseurl;\n } else if (host.indexOf('abcblogs') > -1) {\n baseurl = 'https://www.abc.es' + baseurl;\n }\n\n Logger.debug('[post-script] baseurl: ' + baseurl);\n\n let timeoutPopupAddData = 0;\n if (urlReferer.indexOf(\"registro/validacion-mail.html\") > -1){\n let originRegister = window.location.href;\n let originText = 'register';\n if (originRegister.indexOf(\"/opinion/\") > -1 && originRegister.indexOf(\".html\") > -1){\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.indexOf(\"/micuenta/\") === -1) {\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 const Logger = nibara.logger;\n\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\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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","const app = Voonto.getInstance();\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;\nconst onlyCountNot = app.lookup('vocento.config.nibara').onlyCountNotifications;\nvar onlyCount = false;\nif (onlyCountNot !== undefined) {\n onlyCount = true;\n}\n\nconst posicNotDefaultNot = app.lookup('vocento.config.nibara').posicNotDefaultNotifications;\nvar posicNotifications = 'default';\nif (posicNotDefaultNot !== undefined) {\n posicNotifications = 'other';\n}\n\nvalueNotificationsVocVtmInfo();\n\nfunction notificationsLoad() {\n const Logger = nibara.logger;\n Logger.debug('[vocuser-notifications] init count notifications - onlyCount: ', onlyCount);\n countNotifications();\n\n if (onlyCount === false) {\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 let id = Voonto.$(this).data('id');\n let status = Voonto.$(this).data('status');\n let url = Voonto.$(this).data('url');\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 const Logger = nibara.logger;\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 let numNotifications = '0';\n if(response && 'undefined' !== typeof response.code && response.code === 200){\n Logger.debug('[vocuser-notifications] response.count: ', response.count);\n Logger.debug('[vocuser-notifications] posicNotifications: ', posicNotifications);\n if(response.count > 0){\n numNotifications = response.count;\n if (posicNotifications === 'default') {\n Logger.debug('[vocuser-notifications] count notifications', response.count, ' >>> posicNotifications: ', posicNotifications);\n Voonto.$('.user-logged-in > .alertas.notificaciones').append(''+response.count+'');\n } else {\n Logger.debug(' vocuser-notifications] --- lenght: ', Voonto.$('.alertas.notificaciones').length);\n Voonto.$('.alertas.notificaciones').each(function () {\n Logger.debug('[vocuser-notifications] count notifications', response.count, ' >>> posicNotifications: ', posicNotifications);\n Voonto.$(this).append(''+response.count+'');\n });\n }\n }\n }else{\n Logger.error('[vocuser-notifications] count notifications', response);\n }\n const elm = Voonto.$('.user-logged-in > .alertas.notificaciones');\n if (elm) {\n elm.attr('data-voc-vtm-info',numNotifications);\n }\n });\n}\n\nfunction countNotificationsR2(){\n const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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(function(gigyaUX) {\n Logger.debug('[vocuser-ready] gigyaUX',gigyaUX);\n app.when('vocuser:getusertype').then(function(response) {\n Logger.debug('[vocuser-notifications listNotifications] gigyaUX');\n let userType = response['responseGetUserType'];\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\n function displayNotification($list, notification) {\n let type = '';\n let mchannel, source, linkname, vtmInfo = '';\n let title = 'Noticia';\n let contentUrl = notification['content']['url'];\n let isOpinion = contentUrl.indexOf('/opinion/') > -1;\n\n if(notification['content']['contentType'] == 'concurso'){\n type = 'evento';\n title = 'Concurso';\n }else if(notification['content']['contentType'] == 'evento'){\n type = 'evento';\n title = 'Evento';\n }else if(notification['content']['contentType'] == 'encuesta'){\n type = 'encuesta';\n title = 'Encuesta';\n }\n if(isOpinion) {\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(contentUrl != '') {\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 '' + dateFormat(notification['timestamp']) + '' +\n '' +\n 'Eliminar' +\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 '' + dateFormat(notification['timestamp']) + '' +\n '' +\n 'Eliminar' +\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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\nfunction valueNotificationsVocVtmInfo() {\n Voonto.$('.user-logged-in > .alertas.notificaciones').on('click',function(){\n const regex = /^abrir-\\d$/gm;\n const elm = $(this);\n let vocVtmInfo = elm.attr('data-voc-vtm-info');\n let newVocVtmInfo = '';\n\n if (isInteger(parseInt(vocVtmInfo))) {\n newVocVtmInfo = 'abrir-' + vocVtmInfo;\n } else {\n newVocVtmInfo = regex.exec(vocVtmInfo) ? vocVtmInfo.replace('abrir','cerrar') : vocVtmInfo.replace('cerrar','abrir');\n }\n elm.attr('data-voc-vtm-info',newVocVtmInfo);\n });\n\n}\n/** Resolved IE Fails **/\nfunction isInteger(num) {\n Number.isInteger = Number.isInteger || function(value) {\n return typeof value === \"number\" &&\n isFinite(value) &&\n Math.floor(value) === value;\n };\n\n return Number.isInteger(num);\n}\nexport {notificationsLoad,listNotifications};\n\n\n\n// WEBPACK FOOTER //\n// ./src/scripts/layout/vocuser-notifications.js","/*\n * Función para depurar posiciones de publicidad\n */\nfunction debugVam($elm) {\n const Logger = nibara.logger;\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 const Logger = nibara.logger;\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","import {listNotifications} from \"../layout/vocuser-notifications\"\n\nexport function menusMobile() {\n const Logger = nibara.logger;\n\n let seccion = window.nibara.nTools.getSectionUrl();\n Logger.debug('[post-script] 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 !== 'play' && seccion !== 'summum' && seccion !== 'guia-restaurantes') {\n Voonto.$('.navegacion a').removeClass('activo');\n }\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('[post-script] 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 const Logger = nibara.logger;\n\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 Voonto.$('[data-menu-usuario-login-sticky]').removeClass('visible');\n Voonto.$('[data-abre-menu-usuario-login-sticky]').removeClass('visible');\n Voonto.$('[data-menu-alerta-login-sticky]').removeClass('visible');\n Voonto.$('[data-abre-menu-alerta-login-sticky]').removeClass('visible');\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 Logger.info('[post-script] boton UsuarioLogin', botonUsuarioLogin);\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","function success(success) {\n const Logger = nibara.logger;\n Logger.debug(success);\n}\n\nfunction error(error) {\n const Logger = nibara.logger;\n Logger.debug(error);\n}\n\nfunction getPushStatusChecker(url, cb) {\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 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\nexport function indigitalLoad(app, document) {\n const Logger = nibara.logger;\n var chromeVersion = getChromeVersion();\n Logger.debug(\"[indigitall] Chrome Version: \",chromeVersion);\n if (chromeVersion > 41) {\n app.load('/indigitall/sdk.min.js?v=20200518110000').then(() => {\n var host = window.location.host;\n var appKey = '';\n if (host.indexOf('sevilla.abc.es') > -1) {\n appKey = '1213247813562e12bccb8137.99837995';\n } else if (host.indexOf('lavozdigital.es') > -1) {\n appKey = '2064175608562e537c6e2369.80569469';\n } else {\n appKey = '18484694655613f1f2334409.61215592';\n }\n Logger.debug(\"[indigitall] appKey: \", appKey);\n\n indigitall.init({\n appKey: appKey,\n workerPath: '/indigitall/worker.min.js?v=20200518110000',\n requestLocation: true,\n setDebugLog: true,\n onInitialized: onIndigitallInitialized,\n requestPushPermission: requestPushPermission,\n requestLocationPermission: requestLocationPermission,\n onLocationUpdated: onLocationUpdated,\n onError: onError\n });\n });\n }\n}\n\nfunction getChromeVersion () {\n var raw = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n return raw ? parseInt(raw[2], 10) : false;\n}\n\nfunction onIndigitallInitialized(permissions,device){\n const Logger = nibara.logger;\n Logger.debug(\"[indigitall] Push Permission: \",permissions.push);\n Logger.debug(\"[indigitall] Location Permission: \",permissions.location);\n Logger.debug(\"[indigitall] Device: \", device);\n\n Voonto.ready.then(function (app) {\n app.when('vocuser:userinterestdata').then(function (response) {\n Logger.debug('[indigitall] vocuser:userinterestdata: ' + response);\n var InteresGroupAdd = [];\n var InteresGroupDelete = [];\n //Verificamos si existe.\n if (response.responseUserInterestData) {\n Logger.debug('[indigitall] response.responseUserInterestData: ' + response.responseUserInterestData);\n if (response.responseUserInterestData.length > 0) {\n //Recorremos los intereses\n response.responseUserInterestData.forEach(function (element) {\n //Miramos si es activo o no\n if (element.status == true)\n InteresGroupAdd.unshift(element.ID.replace(\".\", \"\"));\n else\n InteresGroupDelete.unshift(element.ID.replace(\".\", \"\"));\n });\n //Validamos y eliminamos o añadimos al grupo.\n if (InteresGroupAdd.length > 0) {\n indigitall.topicsSubscribe(InteresGroupAdd, function (response) {\n Logger.debug('[indigitall] InteresGroupAdd::' + response);\n }, function (response) {\n Logger.debug('[indigitall] InteresGroupAdd::' + response);\n });\n }\n if (InteresGroupDelete.length > 0)\n indigitall.topicsUnsubscribe(InteresGroupDelete, function (response) {\n Logger.debug('[indigitall] InteresGroupDelete::' + response);\n }, function (response) {\n Logger.debug('[indigitall] InteresGroupDelete::' + response);\n });\n }\n }\n });\n\n app.when('vocuser:ready').then(function (gigyaux) {\n Logger.debug('[indigitall] vocuser:ready: ' + gigyaux);\n if (gigyaux.getUserType() === \"registrado\") {\n Logger.debug('[indigitall] gigyaux.getUserType: ' + gigyaux.getUserType());\n indigitall.topicsSubscribe(['registrado'], function (response) {\n Logger.debug('[indigitall] RegistradoAdd::' + response);\n }, function (response) {\n Logger.debug('[indigitall] RegistradoAdd::' + response);\n });\n indigitall.setExternalCode(gigyaux.vocUserGetData('uid'), (device) => {\n Logger.debug('[indigitall] setExternalCode: ok usuario registrado: ' + device);\n }, (error) => {\n Logger.debug('[indigitall] setExternalCode: error usuario registrado:' + error);\n });\n\n } else {\n Logger.debug('[indigitall] gigyaux.getUserType: ' + gigyaux.getUserType());\n indigitall.topicsUnsubscribe(['registrado'], function (response) {\n Logger.debug('[indigitall] RegistradoDelete::' + response);\n }, function (response) {\n Logger.debug('[indigitall] RegistradoDelete::' + response);\n });\n\n indigitall.setExternalCode(\"\", (device) => {\n Logger.debug('[indigitall] setExternalCode: ok usuario anonimo: ' + device);\n }, (error) => {\n Logger.debug('[indigitall] setExternalCode: error usuario anonimo:' + error);\n });\n\n }\n });\n\n let pathName = window.location.pathname;\n Logger.debug('[indigitall] pathName: ' + pathName);\n if (/^\\/agronoma/.test(pathName)) {\n Logger.debug('[indigitall] topicsList and agronoma user interests');\n indigitall.topicsList((topics) => {\n var DeleteTopics = [];\n topics.forEach((topic) => {\n if (topic.subscribed)\n //AGR y GAN son las categorias de Agricultura y Ganaderia.\n if (topic.code.substring(0, 3) == \"AGR\" || topic.code.substring(0, 3) == \"GAN\")\n DeleteTopics.push(topic.code);\n });\n if (DeleteTopics.length > 0) indigitall.topicsUnsubscribe(DeleteTopics);\n });\n\n agronoma_user_interests.then(\n function (result) {\n Logger.debug('[indigitall] result.interests: ' + result.interests);\n var Resultado = [];\n if (\"undefined\" != typeof result.interests && null != result.interests) {\n Resultado = Object.values(result.interests);\n }\n\n var InsertTopics = [];\n Resultado.forEach((Intereses) => {\n var Scopes = [];\n if (Array.isArray(Intereses.scopes))\n Scopes = Intereses.scopes;\n else\n Scopes = Object.values(Intereses.scopes);\n\n Scopes.forEach((Ambito) => {\n InsertTopics.push((Intereses.code + Ambito.id).replace(\".\", \"\"));\n });\n });\n\n if (InsertTopics.length > 0) indigitall.topicsSubscribe(InsertTopics);\n }\n )\n }\n });\n}\n\nfunction onLocationUpdated(location){\n const Logger = nibara.logger;\n Logger.debug(\"[indigitall] Location\\n \\t - Latitude:\"+location.coords.latitude+\"\\n \\t - Longitude: \"+ location.coords.longitude);\n}\n\nfunction onError(error){\n const Logger = nibara.logger;\n Logger.debug('[indigitall] error: ' + error);\n}\n\nfunction requestPushPermission(permission){\n const Logger = nibara.logger;\n Logger.debug(\"[indigitall] RequestPushPermission: \"+permission.state);\n}\n\nfunction requestLocationPermission(permission){\n const Logger = nibara.logger;\n Logger.debug(\"[indigitall] RequestLocationPermission: \"+permission.state);\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 * Only modify current url to section\n * @param $elm\n */\n static changeUrlInGallery($elm) {\n let section = 'imagen' + $elm.data('imagen');\n let segment = location.protocol + '//' + location.host + location.pathname;\n segment = segment.replace('.html', '.html#'+section);\n\n history.replaceState({\"section\": segment}, segment, segment);\n }\n\n /**\n * Change section name in header\n * @param $elm\n */\n static changeSectionName($elm) {\n const Logger = nibara.logger;\n Logger.info('[Header][Sticky] Change section name');\n var section = $elm.data('section');\n if (!section) {\n return;\n }\n\n var sectionUrl = $elm.data('section-url');\n var sectionName = $elm.data('section-name');\n var comscore = nibara.app.lookup('vocento.tracking.comscore');\n var nsChannel = comscore.voc_site;\n var nsLinkname = comscore.voc_se;\n \n if (Voonto.is.mobile() === true) {\n let $stickySectionName = Voonto.$('.cabecera-sticky .nombre-seccion>a');\n let trackingMark = '#ns_campaign=logo-seccion&ns_mchannel='+nsChannel+'&ns_source=portada.portada&ns_linkname='+nsLinkname+'&ns_fee=0';\n \n if (section === 'main') {\n $stickySectionName.attr(\"href\", '/' + trackingMark);\n $stickySectionName.text('Portada');\n } else if (sectionUrl && sectionName) {\n $stickySectionName.attr(\"href\", sectionUrl + trackingMark);\n $stickySectionName.text(sectionName);\n }\n } else {\n if (section === 'main') {\n if (comscore.voc_s1) {\n nsLinkname = nsLinkname + '.' + comscore.voc_s1;\n }\n } else {\n let tracking = $elm.data('tracking');\n if (tracking && typeof tracking.comscore !== 'undefined') {\n nsLinkname = tracking.comscore.voc_se;\n if (tracking.comscore.voc_s1) {\n nsLinkname = nsLinkname + '.' + tracking.comscore.voc_s1;\n }\n }\n }\n\n let $stickySectionName = Voonto.$('.cabecera-sticky .titulo-seccion>a');\n let trackingMark = '#ns_campaign=logo-seccion&ns_mchannel='+nsChannel+'&ns_source=portada.portada&ns_linkname='+nsLinkname+'&ns_fee=0';\n\n if (section === 'main') {\n $stickySectionName.attr(\"href\", '/' + trackingMark);\n $stickySectionName.text('Portada');\n } else if (sectionUrl && sectionName) {\n $stickySectionName.attr(\"href\", sectionUrl + trackingMark);\n $stickySectionName.text(sectionName);\n }\n }\n }\n\n /**\n * Only modify current url to gallery id\n * @param $elm\n */\n static changeSectionNameInGallery($elm) {\n const Logger = nibara.logger;\n Logger.info('[Header][Sticky] Change section name in gallery');\n if (Voonto.is.mobile() === true) {\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 }else{\n let nsChannel = window.vocento.tracking.comscore.voc_site;\n\n let nsLinkname = window.vocento.tracking.comscore.voc_se;\n\n if (window.vocento.tracking.comscore.voc_s1.length > 0) {\n nsLinkname = nsLinkname + '.' + window.vocento.tracking.comscore.voc_s1;\n }\n\n let trackingMark = '#ns_campaign=logo-seccion&ns_mchannel='+nsChannel+'&ns_source=portada.portada&ns_linkname='+nsLinkname+'&ns_fee=0';\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 const Logger = nibara.logger;\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 if (!Voonto.$(this).hasClass('cmpLink')) {\n window.scrollTo(0, 0);\n location.reload();\n }\n });\n }\n\n /** populate vars into global scope and track with vtm */\n static tracking($elm) {\n const Logger = nibara.logger;\n try {\n let section = $elm.data('section');\n let tracking = $elm.data('tracking');\n var comscore;\n\n Logger.info('Tracking section: ' + section);\n /** if is main section, get data from main object */\n if (section === 'main') {\n comscore = window.vocento.tracking.comscore;\n } else if (tracking && typeof tracking.comscore !== 'undefined') {\n comscore = tracking.comscore;\n } else {\n return;\n }\n\n nibara.app.when('vtm:ready').then(function() {\n TagManager.set({\n seccion: comscore.voc_se,\n subseccion1: comscore.voc_s1,\n subseccion2: comscore.voc_s2,\n subseccion3: comscore.voc_s3,\n subseccion4: comscore.voc_s4,\n titular: comscore.voc_tn,\n tipoDominio: comscore.voc_pr,\n edicion: comscore.voc_ed,\n tipoContenido: comscore.voc_tc,\n tipoContenidoA: comscore.voc_tcnew,\n plataformaContenido: comscore.voc_pl,\n sistemaPublicacion: comscore.voc_pu,\n fechaPrimeraPublicacion: comscore.voc_fep,\n fechaModificacion: comscore.voc_fem,\n idioma: comscore.voc_idi,\n IDEvolok: comscore.voc_pw_pid,\n firmaAutor: comscore.voc_au,\n origenContenido: comscore.voc_or,\n topics: comscore.voc_top,\n scrollInfinito: 'true',\n scrollInfinitoHome: $elm.data('section-seq'),\n scrollDireccion: window.vocento.tracking.comscore.scrollDireccion\n });\n\n if ($elm.data('imagen')) {\n TagManager.set({slot: $elm.data('imagen')});\n }\n\n TagManager.track();\n\n Logger.info('VTM dataLayer', 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\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 console.error(img);\n return img;\n },\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\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\n setTrackBuscadorPlaySummum(TagManager){\n let main = window.document.getElementsByTagName('main');\n if (main.length > 0) {\n let keywords = main[0].getAttribute('data-keywords');\n if (keywords !== null && keywords !== '') {\n let num_entries = main[0].getAttribute('data-num-entries');\n let buscador = main[0].getAttribute('data-buscador');\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\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 setTrackLandingAdblocker(TagManager) {\n if (-1 === ['/suscripcion-ok/', '/suscripcion-ko/'].indexOf(window.location.pathname)) {\n return false;\n }\n const {Voonto} = window;\n\n Voonto.getInstance().when('vocuser:ready').then(function (gigyaUX) {\n let isLogin = typeof gigyaUX !== 'undefined' && gigyaUX.getUserType() !== 'anonimo';\n let voc_tn = '';\n if (['/suscripcion-ok/'].indexOf(window.location.pathname) > -1) {\n voc_tn = isLogin ? 'us-logado' : 'us-no-logado';\n }\n if (['/suscripcion-ko/'].indexOf(window.location.pathname) > -1) {\n voc_tn = isLogin ? 'us-sus-logado' : 'us-sus-no-logado';\n }\n window.voc_tn = voc_tn;\n TagManager.set({titular: voc_tn}).track();\n });\n\n return true;\n },\n setTrackDetallesArchivo(TagManager){\n let body = window.document.getElementsByTagName('body');\n if (body.length > 0) {\n let page = body[0].getAttribute('data-layout');\n if('detail' === page){\n let $element = window.document.getElementById('use-type-data');\n let $button = $element.querySelectorAll('[data-add-to-cart]');\n if ($button.length > 0) {\n let itemId = $button[0].getAttribute('data-id');\n let itemType = $button[0].getAttribute('data-type');\n let itemTitle = window.vocento.tracking.comscore.voc_tn;\n\n if (window.vocento.tracking.comscore.voc_tn.indexOf(\".\") > -1) {\n itemTitle = window.voc_tn.substring(0, voc_tn.indexOf(\".\"));\n }\n\n TagManager.set({\n accionEcommerce: \"vista-de-producto\",\n SKU:itemId,\n nombreProducto: 'producto-'+itemTitle,\n categoriaProducto: itemType,\n unidadesProducto:\"1\"\n });\n }\n }\n }\n\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracking/trackUtils.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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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","const app = Voonto.getInstance();\n\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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 const Logger = nibara.logger;\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"],"sourceRoot":""}