PageSourceSearch

https://loja.correios.com.br/public-resources/js/paginador.js?v=7

js correios.com.br collected 2026-09-24 07:27:12 UTC 4,119 bytes, 125 lines download raw bytes

1class Paginador  {
2
3    constructor (p, funcaoPesquisa) {
4        this.p = p;
5        this.funcaoPesquisa = funcaoPesquisa;
6
7        var paginador, controle, paginas;
8        paginador = document.createElement('div');
9        paginador.className = 'paginador-controles';
10        p.parentNode.appendChild(paginador);
11
12        paginador.insertAdjacentHTML('afterbegin', `<div class="containerpaginador"></div>`)
13        paginador = paginador.querySelector('.containerpaginador');
14
15        controle = document.createElement('a');
16        controle.className = 'controle primeiro';
17        var self = this;
18        controle.addEventListener('click', function () {
19            self.primeira();
20        });
21        paginador.appendChild(controle);
22        controle = document.createElement('a');
23        controle.className = 'controle anterior';
24        controle.addEventListener('click', function () {
25            self.anterior();
26        });
27        paginador.appendChild(controle);
28        paginas = document.createElement('div');
29        paginas.className = 'paginas';
30        paginador.appendChild(paginas);
31        controle = document.createElement('a');
32        controle.className = 'controle proximo';
33        controle.addEventListener('click', function () {
34            self.proxima();
35        });
36
37        paginador.appendChild(controle);
38        controle = document.createElement('a');
39        controle.className = 'controle ultimo';
40        controle.addEventListener('click', function () {
41            self.ultima();
42        });
43        paginador.appendChild(controle);
44        var ajustaLargura = function () {
45            var t = p.querySelector('table');
46            if (t) {
47                paginador.style.maxWidth = (t.offsetWidth) + 'px';
48            }
49            setTimeout(function () {
50                ajustaLargura();
51            }, 250);
52        };
53        ajustaLargura();
54        funcaoPesquisa(0);
55        this.atualiza();
56    };
57
58    atualiza() {
59        var pagina;
60        var paginador = this.p.parentNode.querySelector('.paginador-controles .containerpaginador');
61        var paginas = paginador.querySelector('.paginas');
62        paginas.innerHTML = '';
63
64        var t = this.p.querySelector('table');
65
66        if (!t) {
67            paginador.style.display = 'none';
68            return;
69        }
70
71        var numeroPaginas = parseInt(t.dataset.paginas, 10);
72
73        if (numeroPaginas === 1) {
74            paginador.style.display = 'none';
75            return;
76        }
77
78        paginador.style.display = 'flex';
79        var self = this;
80        for (var i = 1; i <= numeroPaginas; i++) {
81            pagina = document.createElement('a');
82            pagina.dataset.numero = i - 1;
83            pagina.innerText = i;
84            pagina.addEventListener('click', function () {
85                self.funcaoPesquisa(this.dataset.numero);
86            });
87            paginas.appendChild(pagina);
88        }
89        var paginaAntiga = t.querySelector('.paginas a.sel');
90        if (paginaAntiga) {
91            paginaAntiga.classList.remove('sel');
92        }
93        var paginaAtual = paginas.querySelector('a[data-numero="' + t.dataset.paginaAtual + '"]');
94        if (!paginaAtual) {
95            throw 'Página atual não existe.';
96        }
97        paginaAtual.classList.add('sel');
98        paginas.scrollLeft = paginaAtual.offsetLeft - paginas.offsetWidth / 2 + paginaAtual.offsetWidth / 2;
99        //document.querySelector('main').scrollIntoView();
100    };
101
102    primeira() {
103        this.funcaoPesquisa(0);
104    };
105
106    anterior() {
107        var paginaAtual = parseInt(this.p.querySelector('table').dataset.paginaAtual);
108        if (paginaAtual > 0) {
109            this.funcaoPesquisa(--paginaAtual);
110        }
111    };
112
113    proxima() {
114        var paginaAtual = parseInt(this.p.querySelector('table').dataset.paginaAtual);
115        if (paginaAtual < parseInt(this.p.querySelector('table').dataset.paginas) -1) {
116            this.funcaoPesquisa(++paginaAtual);
117        }
118    };
119
120    ultima() {
121        this.funcaoPesquisa(this.p.querySelector('table').dataset.paginas -1);
122    };
123}
124
125export {Paginador};

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.