module Pagy::Frontend

def pagy_foundation_nav_js(pagy, id=pagy_id)

Javascript pagination for foundation: it returns a nav and a JSON tag used by the Pagy.nav javascript
def pagy_foundation_nav_js(pagy, id=pagy_id)
  link, p_prev, p_next = pagy_link_proc(pagy), pagy.prev, pagy.next
  tags = { 'before' => ( '<ul class="pagination">' \
                       + (p_prev ? %(<li class="prev">#{link.call(p_prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"')}</li>)
                                 : %(<li class="prev disabled">#{pagy_t('pagy.nav.prev')}</li>)) ),
           'link'   => %(<li>#{link.call(PAGE_PLACEHOLDER)}</li>),
           'active' => %(<li class="current">#{pagy.page}</li>),
           'gap'    => %(<li class="ellipsis gap" aria-hidden="true"></li>),
           'after'  => ( (p_next ? %(<li class="next">#{link.call(p_next, pagy_t('pagy.nav.next'), 'aria-label="next"')}</li>)
                                 : %(<li class="next disabled">#{pagy_t('pagy.nav.next')}</li>)) \
                       + '</ul>' ) }
  %(<nav id="#{id}" class="pagy-foundation-nav-js" role="navigation" aria-label="Pagination"></nav>#{pagy_json_tag(:nav, id, tags, pagy.sequels, defined?(TRIM) && pagy.vars[:page_param])})
end