PageSourceSearch

https://www.correios.com.br/++theme++tema-do-portal-correios/static/js/cod/rodape.js

js correios.com.br collected 2026-09-24 07:27:58 UTC 6,741 bytes, 135 lines download raw bytes

1define(function (){
2    return {
3        ajustaLayoutRodape: () => {
4            const containersRodape = document.querySelectorAll('[data-container-link-rodape="links-rodape"]');
5            if (containersRodape){
6                window.addEventListener('resize', () => {
7                    ajustaIconesNoRodape(containersRodape);
8                });
9                if (tamanhoTela() > 992){
10                    apresentaTodosIconesRodape(containersRodape);
11                }
12            }
13        },
14
15        criaEventosClick: () => {
16            const containersRodapeClick = document.querySelectorAll('[data-container-link-rodape="links-rodape"]');
17            if (containersRodapeClick){
18                for (container of containersRodapeClick){
19                    const elementosASereremAlterado = container.querySelectorAll('ul');
20                    const elementosClick = container.querySelectorAll('[data-imagem-evento]');
21                    elementosClick[0].addEventListener('click', () => {
22                        alteraComportamentoElemento(elementosASereremAlterado, elementosClick);
23                    })
24                    elementosClick[1].addEventListener('click', () => {
25                        alteraComportamentoElemento(elementosASereremAlterado, elementosClick);
26                    })
27                }
28            }  
29        },
30
31        // Gerencia a exibição dos links dos portlets de Acesso Rápido
32        scrollLeftRight: () => {
33            let startPosition = 0;
34            document.querySelectorAll( '.acesso-rapido-links' ).forEach( ( prtltAcessoRapido ) => {
35                const mainCntnr = prtltAcessoRapido.closest( "section" );
36                const lnks = mainCntnr.querySelectorAll( '[data-item-acesso-rapido]' );
37                // const linksCntnrMeas = prtltAcessoRapido.getBoundingClientRect();
38                let linksCntnrMeas = prtltAcessoRapido.getBoundingClientRect();
39                slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas )
40                prtltAcessoRapido.addEventListener( 'touchstart', ( event ) => startPosition = event.touches[0].clientX )
41                prtltAcessoRapido.addEventListener( 'touchmove', ( event ) => {
42                    prtltAcessoRapido.scrollLeft = prtltAcessoRapido.scrollLeft + startPosition - event.touches[0].clientX
43                    slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas )});
44                prtltAcessoRapido.addEventListener( 'dragstart', ( event ) => startPosition = event.clientX )
45                prtltAcessoRapido.addEventListener( 'dragover', ( event ) => {
46                    prtltAcessoRapido.scrollLeft = prtltAcessoRapido.scrollLeft + startPosition - event.clientX
47                    slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas )});
48                prtltAcessoRapido.addEventListener( 'scroll', ( event ) => {
49                    let isScrolling;
50                    window.clearTimeout(isScrolling);
51                    isScrolling = setTimeout( slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas ), 150 )});
52                // window.addEventListener( 'resize', () => slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas ))
53                window.addEventListener( 'resize', ( event ) => {
54                    let isScrolling;
55                    linksCntnrMeas = prtltAcessoRapido.getBoundingClientRect();
56                    window.clearTimeout( isScrolling );
57                    isScrolling = setTimeout( slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas ), 150 )});
58            })
59        }
60    }
61
62    // Gerencia a barra de navegação (dots) do portlet Acesso Rápido
63    function slickDotsMngmt( mainCntnr, lnks, linksCntnrMeas ) {
64        const navBar = mainCntnr.querySelector( '.slick-dots-container' );
65        if ( !lnks || !navBar || !mainCntnr ) return
66        const firstLnkIsVisible = lnks[0].getBoundingClientRect().right > linksCntnrMeas.left ? true : false;
67        const lastLnkIsVisible  = lnks[ --lnks.length ].getBoundingClientRect().left < linksCntnrMeas.right ? true : false;
68        if ( firstLnkIsVisible && lastLnkIsVisible ) {
69            navBar.classList.add( 'oculta-elemento' )
70            return }
71        navBar.classList.remove( 'oculta-elemento' )
72        const lnkColorMng = { 0: firstLnkIsVisible, 1: !firstLnkIsVisible && !lastLnkIsVisible, 2: lastLnkIsVisible };
73        navBar.querySelectorAll( '.slick-dots' ).forEach(( dot, idx ) => 
74            lnkColorMng[ idx ] ? dot.classList.add( 'slick-dots-blue' ) : dot.classList.remove( 'slick-dots-blue' ))
75    }
76
77
78    // Início do tratamento dos ícones do acesso rápido
79    function ajustaIconesNoRodape(containersRodape){
80        if (tamanhoTela() < 992 ){
81            ocultaTodosIconesRodape(containersRodape);
82        } else {
83            apresentaTodosIconesRodape(containersRodape);
84        }
85    }
86
87    function tamanhoTela(){
88        return window.innerWidth
89    }
90
91    function ocultaTodosIconesRodape(containersRodape){
92        for (container of containersRodape){
93            const elementosClick = container.querySelectorAll('[data-imagem-evento]');
94            const elementosASereremAlterado = container.querySelectorAll('ul');
95            for (elementoASerAlterado of elementosASereremAlterado){
96                if (elementoASerAlterado.classList.contains('oculta-elemento')){
97                    continue
98                }
99                alteraElementosVisiveis(elementoASerAlterado);
100            }
101            if (elementosClick[0].classList.contains('oculta-elemento')){
102                alteraImagemElementoClick(elementosClick);
103            }
104        } 
105    }
106
107    function apresentaTodosIconesRodape(containersRodape){
108        for (container of containersRodape){
109            const elementosClick = container.querySelectorAll('[data-imagem-evento]');
110            const elementosASereremAlterado = container.querySelectorAll('ul');
111            if (elementosASereremAlterado.length){
112                if (elementosASereremAlterado[0].classList.contains('oculta-elemento')){
113                    alteraComportamentoElemento(elementosASereremAlterado, elementosClick)
114                }
115            }
116        } 
117    }
118
119    function alteraComportamentoElemento(elementosASereremAlterado, elementosClick){
120        for (elementoASerAlterado of elementosASereremAlterado){
121            alteraElementosVisiveis(elementoASerAlterado);
122        }
123        alteraImagemElementoClick(elementosClick);
124    }
125
126    function alteraElementosVisiveis(elementoASerAlterado){
127        elementoASerAlterado.classList.toggle("oculta-elemento");
128    }
129
130    function alteraImagemElementoClick(elementosClick){
131        for (elemento of elementosClick) {
132            elemento.classList.toggle("oculta-elemento");
133        }
134    } 
135});

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.