module Pagy::ItemsExtra::Frontend
def pagy_items_selector_js(pagy, pagy_id: nil, item_name: nil, i18n_key: nil, link_extra: '')
def pagy_items_selector_js(pagy, pagy_id: nil, item_name: nil, i18n_key: nil, link_extra: '') return '' unless pagy.vars[:items_extra] p_id = %( id="#{pagy_id}") if pagy_id p_vars = pagy.vars p_items = p_vars[:items] p_vars[:items] = ITEMS_PLACEHOLDER link = pagy_marked_link(pagy_link_proc(pagy, link_extra: link_extra)) p_vars[:items] = p_items # restore the items html = +%(<span#{p_id} class="pagy-items-selector-js" #{pagy_json_attr pagy, :items_selector, pagy.from, link}>) input = %(<input type="number" min="1" max="#{p_vars[:max_items]}" value="#{ p_items}" style="padding: 0; text-align: center; width: #{p_items.to_s.length + 1}rem;">) html << pagy_t('pagy.items_selector_js', item_name: item_name || pagy_t(i18n_key || p_vars[:i18n_key], count: p_items), items_input: input, count: p_items) html << %(</span>) end