import { escapeHtml } from './utils.js'; export function renderPagination(container, pageData, { onPage, onSize, label = 'записей' } = {}) { if (!container) return; const totalItems = Number(pageData?.totalItems || 0); const page = Number(pageData?.page || 0); const size = Number(pageData?.size || 25); const totalPages = Math.max(Number(pageData?.totalPages || 0), totalItems ? 1 : 0); const start = totalItems ? page * size + 1 : 0; const end = Math.min((page + 1) * size, totalItems); container.innerHTML = `
Показано ${start}–${end} из ${totalItems} ${escapeHtml(label)}
${totalPages ? page + 1 : 0} / ${totalPages}
`; container.querySelectorAll('[data-pagination-page]').forEach(button => { button.addEventListener('click', () => onPage?.(Number(button.dataset.paginationPage))); }); container.querySelector('[data-pagination-size]')?.addEventListener('change', event => { onSize?.(Number(event.target.value)); }); }