module Pagy::NavsExtra

def pagy_combo_nav_js(pagy, pagy_id: nil, link_extra: '')

Javascript combo pagination: it returns a nav and a JSON tag used by the pagy.js file
def pagy_combo_nav_js(pagy, pagy_id: nil, link_extra: '')
  p_id    = %( id="#{pagy_id}") if pagy_id
  link    = pagy_link_proc(pagy, link_extra: link_extra)
  p_page  = pagy.page
  p_pages = pagy.pages
  input   = %(<input type="number" min="1" max="#{p_pages}" value="#{
                p_page}" style="padding: 0; text-align: center; width: #{p_pages.to_s.length + 1}rem;">)
  %(<nav#{p_id} class="pagy-combo-nav-js pagination" #{
      pagy_data(pagy, :combo, pagy_marked_link(link))}>#{
      pagy_nav_prev_html pagy, link
    }<span class="pagy-combo-input" style="margin: 0 0.6rem;">#{
      pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages
    }</span> #{
      pagy_nav_next_html pagy, link
    }</nav>)
end