1import { safeURL, initGlobalBehaviors } from "./globals.js?v=001"; 2 3const doc = document; 4const win = window; 5 6doc.addEventListener('DOMContentLoaded', () => { 7 8 safeURL.init(); 9 10 window.baseURL = String(window.location).split(window.location.host)[0] + window.location.host + '/'; 11 12 document.fonts.ready.then((fontFaceSet) => { 13 document.body.classList.add('fonts-loaded'); 14 15 document.body.classList.add('fadein'); 16 17 const siteVersion = win.siteVersion || '1.0.0'; 18 19 const config = { 20 mainSelector: '.js-module', 21 jsModules: [ 22 { selector: '.block-microbanner', src: './layouts/blocks/block-microbanner.js?ver='+siteVersion }, 23 { selector: '.block-nl-subscription-banner', src: './layouts/blocks/block-nl-subscription-banner.js?ver='+siteVersion }, 24 { selector: '.component-floating-nav', src: './layouts/components/component-floating-nav.js?ver=' + siteVersion }, 25 { selector: '.block-on-picture-content', src: './layouts/blocks/block-on-picture-content.js?ver=' + siteVersion }, 26 { selector: '.component-videos-gallery', src: './layouts/components/component-videos-gallery.js?ver=' + siteVersion }, 27 { selector: '.block-row-of-videos', src: './layouts/blocks/block-row-of-videos.js?ver=' + siteVersion }, 28 { selector: '.block-slideshow', src: './layouts/blocks/block-slideshow.js?ver=' + siteVersion }, 29 { selector: '.block-slideshow-with-text', src: './layouts/blocks/block-slideshow-with-text.js?ver=' + siteVersion }, 30 { selector: '.block-index-bar', src: './layouts/blocks/block-index-bar.js?ver=' + siteVersion }, 31 { selector: '.block-hero', src: './layouts/blocks/block-hero.js?ver=' + siteVersion }, 32 { selector: '.block-items-list', src: './layouts/blocks/block-items-list.js?ver=' + siteVersion }, 33 { selector: '.block-content-layout-3', src: './layouts/blocks/block-content-layout-3.js?ver=' + siteVersion }, 34 { selector: '.block-features-with-image', src: './layouts/blocks/block-features-with-image.js?ver=' + siteVersion }, 35 { selector: '.block-features-in-a-row', src: './layouts/blocks/block-features-in-a-row.js?ver=' + siteVersion }, 36 { selector: '.component-feature-atom', src: './layouts/components/component-feature-atom.js?ver=' + siteVersion }, 37 { selector: '.component-buttons', src: './layouts/components/component-buttons.js?ver=' + siteVersion }, 38 { selector: '.block-banner', src: './layouts/blocks/block-banner.js?ver=' + siteVersion }, 39 { selector: '.block-banner-w-img', src: './layouts/blocks/block-banner-w-img.js?ver=' + siteVersion }, 40 { selector: '.block-banner-on-picture', src: './layouts/blocks/block-banner-on-picture.js?ver=' + siteVersion }, 41 { selector: '.block-grid-of-cards', src: './layouts/blocks/block-grid-of-cards.js?ver=' + siteVersion }, 42 { selector: '.block-media', src: './layouts/blocks/block-media.js?ver=' + siteVersion }, 43 { selector: '.component-accordion', src: './layouts/components/component-accordion.js?ver=' + siteVersion }, 44 { selector: '.component-media', src: './layouts/components/component-media.js?ver=' + siteVersion }, 45 { selector: '.component-card-large', src: './layouts/components/component-card-large.js?ver=' + siteVersion }, 46 { selector: '.component-card-small', src: './layouts/components/component-card-small.js?ver=' + siteVersion }, 47 48 { selector: '.component-loading', src: './layouts/components/component-loading.js?ver=' + siteVersion }, 49 { selector: '.component-image-text-split', src: './layouts/components/component-image-text-split.js?ver=' + siteVersion }, 50 { selector: '.page-single-people', src: './layouts/pages/page-single-people.js?ver=' + siteVersion }, 51 { selector: '.component-custom-select', src: './layouts/components/component-custom-select.js?ver=' + siteVersion }, 52 { selector: '.block-past-fellows', src: './layouts/blocks/block-past-fellows.js?ver=' + siteVersion }, 53 { selector: '.block-related-people', src: './layouts/blocks/block-related-people.js?ver=' + siteVersion }, 54 { selector: '.component-people-card', src: './layouts/components/component-people-card.js?ver=' + siteVersion }, 55 { selector: '.page-archive-people', src: './layouts/pages/page-archive-people.js?ver=' + siteVersion }, 56 { selector: '.component-feature-card', src: './layouts/components/component-feature-card.js?ver=' + siteVersion }, 57 { selector: '.block-feature-cards-grid', src: './layouts/blocks/block-feature-cards-grid.js?ver
57=' + siteVersion }, 58 { selector: '.block-horizontal-rows-of-content', src: './blocks/block-horizontal-rows-of-content.js?ver=' + siteVersion }, 59 { selector: '.block-embed-code', src: './layouts/blocks/block-embed-code.js?ver=' + siteVersion }, 60 { selector: '.block-grid-news', src: './layouts/blocks/block-grid-news.js?ver=' + siteVersion }, 61 { selector: '.component-jump-menu', src: './layouts/components/component-jump-menu.js?ver=' + siteVersion }, 62 { selector: '.block-text-on-image', src: './layouts/blocks/block-text-on-image.js?ver=' + siteVersion }, 63 { selector: '.page-single-summits', src: './layouts/pages/page-single-summits.js?ver=' + siteVersion }, 64 { selector: '.page-single-events', src: './layouts/pages/page-single-events.js?ver=' + siteVersion }, 65 { selector: '.component-scroll-gallery', src: './layouts/components/component-scroll-gallery.js?ver=' + siteVersion }, 66 { selector: '.block-related-events', src: './layouts/blocks/block-related-events.js?ver=' + siteVersion }, 67 { selector: '.block-related-news', src: './layouts/blocks/block-related-news.js?ver=' + siteVersion }, 68 { selector: '.component-share-post', src: './layouts/components/component-share-post.js?ver=' + siteVersion }, 69 { selector: '.page-single-news', src: './layouts/pages/page-single-news.js?ver=' + siteVersion }, 70 71 { selector: '.block-gallery', src: './layouts/blocks/block-gallery.js?ver=' + siteVersion }, 72 73 { selector: '.page-archive-programs', src: './layouts/pages/page-archive-programs.js?ver=' + siteVersion }, 74 { selector: '.page-single-programs', src: './layouts/pages/page-single-programs.js?ver=' + siteVersion }, 75 76 { selector: '.component-label', src: './layouts/components/component-label.js?ver=' + siteVersion }, 77 78 { selector: '.component-news-card', src: './layouts/components/component-news-card.js?ver=' + siteVersion }, 79 { selector: '.page-archive-news', src: './layouts/pages/page-archive-news.js?ver=' + siteVersion }, 80 { selector: '.component-item-archive-list', src: './layouts/components/component-item-archive-list.js?ver=' + siteVersion }, 81 82 { selector: '.page-events-archive', src: './layouts/pages/page-events-archive.js?ver=' + siteVersion }, 83 { selector: '.component-event-card', src: './layouts/components/component-event-card.js?ver=' + siteVersion }, 84 { selector: '.component-chips', src: './layouts/components/component-chips.js?ver=' + siteVersion }, 85 { selector: '.component-chip', src: './layouts/components/component-chip.js?ver=' + siteVersion }, 86 87 88 { selector: '.block-content-layout-1', src: './layouts/blocks/block-content-layout-1.js?ver=' + siteVersion }, 89 { selector: '.block-content-layout-2', src: './layouts/blocks/block-content-layout-2.js?ver=' + siteVersion }, 90 91 { selector: '.block-logos', src: './layouts/blocks/block-logos.js?ver=' + siteVersion }, 92 93 { selector: '.block-accordion', src: './layouts/blocks/block-accordion.js?ver=' + siteVersion }, 94 { selector: '.header', src: './layouts/header.js?ver' + siteVersion }, 95 ] 96 } 97 98 if (!!document.querySelector(config.mainSelector)) { 99 const observer = new IntersectionObserver(entries => { 100 entries.forEach(entry => { 101 const isInit = entry.target.initialized; 102 const isPaused = entry.target.paused; 103 //if(isInit && !entry.intersectionRatio && !isPaused && entry.target.pauseModule){ 104 if (isInit && !entry.isIntersecting && !isPaused && entry.target.pauseModule) { 105 //si está inicializado el modulo, está fuera del viewport, no está pausado y existe la función pauseModule dispara pauseModule(); 106 entry.target.paused = true; 107 entry.target.pauseModule(); 108 //}else if(isInit && entry.intersectionRatio && isPaused && entry.target.playModule){ 109 } else if (isInit && entry.isIntersecting && isPaused && entry.target.playModule) { 110 //si está inicializado el modulo, está dentro del viewport, está pausado y existe la función playModule dispara playModule(); 111 entry.target.paused = false;
112 entry.target.playModule(); 113 //}else if(!isInit && entry.intersectionRatio > 0.3){ 114 } else if (!isInit && entry.isIntersecting) { 115 //si no está inicializado y entra el 30% en el viewport tira la carga del módulo e inicializa 116 config.jsModules.forEach((el, i) => { 117 const type = el.selector.substring(0, 1); 118 //const selector = el.selector.split('#').join('').split('.').join(''); 119 const selector = el.selector.substring(1, el.selector.length); 120 if ((type == '#' && entry.target.getAttribute('id') == selector) || (type == '.' && entry.target.classList.contains(selector))) { 121 //observer.unobserve(entry.target); 122 const moduleSpecifierStr = el.src; 123 import(moduleSpecifierStr) 124 .then((namespaceObject) => { 125 entry.target.initialized = true; 126 namespaceObject.startModule(entry.target);//inicializa el modulo de js 127 }); 128 } 129 }); 130 } 131 }); 132 }, { 133 //rootMargin: '0px 0px -25% 0px', 134 rootMargin: '0px 0px 60px 0px', 135 //threshold: [0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1] 136 }); 137 document.querySelectorAll(config.mainSelector).forEach((el) => { 138 observer.observe(el); 139 }); 140 141 142 } 143 144 initGlobalBehaviors(); 145 146 let globalToolPanelInitiated = false; 147 148 window.addEventListener('scroll', () => { 149 if (globalToolPanelInitiated) return; 150 151 const scrollTop = window.scrollY || document.documentElement.scrollTop; 152 const windowHeight = window.innerHeight; 153 const documentHeight = document.documentElement.scrollHeight; 154 155 if (scrollTop + windowHeight >= documentHeight - 10) { 156 globalToolPanelInitiated = true; 157 initGlobalToolPanel(); 158 } 159 }); 160 161 162 163 function initGlobalToolPanel() { 164 165 const toolPanels = document.querySelectorAll('.tool-controls'); 166 if (!toolPanels.length) return; 167 168 const globalTools = document.createElement('div'); 169 globalTools.classList.add('global-tool-controls'); 170 171 const createButton = (label, action) => { 172 const btn = document.createElement('button'); 173 btn.textContent = label; 174 btn.addEventListener('click', action); 175 return btn; 176 }; 177 178 const collapseAll = () => { 179 toolPanels.forEach(panel => { 180 panel.classList.remove('tool-visible'); 181 }); 182 }; 183 184 const expandAll = () => { 185 toolPanels.forEach(panel => { 186 panel.classList.add('tool-visible'); 187 }); 188 }; 189 190 globalTools.appendChild(createButton('Colapsar', collapseAll)); 191 globalTools.appendChild(createButton('Expandir', expandAll)); 192 193 document.body.appendChild(globalTools); 194 } 195 196 }); 197 198 199});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.