define('atracoes', ['Component'], function () { var module = new Component('atracoes') module.bootstrap() module.install = function (base) { switchController(base); pattern(base); toggleRestrictions(); let elementToObserve = document.querySelector('.atracoes-grid') if(elementToObserve) { const observer = new MutationObserver(function () { pattern(base); }) observer.observe(elementToObserve, { subtree: true, childList: true }); } } //Functions function switchController (base) { let reset = base.querySelector('input.filtroReset'); let form = base.querySelector('#options-form'); let options = base.querySelectorAll('input.filtroInput'); var button; for (x = 0; x < options.length; x++) { options[x].onclick = function () { if (button == this) { this.checked = false; button.parentElement.classList.remove('checked'); button = null; reset.checked = true; form.dispatchEvent(new Event('change',{bubbles: true, cancelable: false})); } else { button = this; options.forEach(el => { el.parentElement.classList.remove('checked'); }) button.parentElement.classList.add('checked'); } } } } function pattern (base) { let nl = base.querySelectorAll('.atracoes-atracao'); let arr = Array.from(nl); arr.forEach((e, index) => { index++; e.setAttribute('data-index', `id-${index}`); }) let total = arr.length; while (total >= 2) { if (total >= 2) { let anterior = total; let final = total - 2; total = final; let posicoes = arr.slice(final, anterior); posicoes.forEach(e => { e.parentElement.classList.add('two-column'); }) if (total >= 3) { let anterior = total; let final = total - 3; total = final; let posicoes = arr.slice(final, anterior); posicoes.forEach(e => {; e.parentElement.classList.add('three-column'); }) } } } } function aoClicarLink(component, ev){ ev.preventDefault(); var url = $(this).data('url'); if(ev.which==2) { window.open(url, "_blank"); return; } console.log(component); if(url) { window.history.pushState(null, null, url); window.location.href = url; } } function toggleRestrictions(){ let button = document.querySelector('.restricoes_toggler'); if(button){ button.addEventListener('click', () => { button.children[1].classList.toggle('hidden'); button.children[2].classList.toggle('hidden'); }) } } module.elements = { link: { // click: aoClicarLink, // mouseup: aoClicarLink } }; module.bootstrap(); return module; })