module Pagy::FrontendHelpers::Frontend

def pagy_data(pagy, *args)

Base64 encoded JSON is smaller than HTML escaped JSON
Return a data tag with the base64 encoded JSON-serialized args generated with the faster oj gem
def pagy_data(pagy, *args)
  args << pagy.vars[:page_param] if pagy.vars[:trim_extra]
  strict_base64_encoded = [Oj.dump(args, mode: :strict)].pack('m0')
  %(data-pagy="#{strict_base64_encoded}")
end

def pagy_data(pagy, *args)

Base64 encoded JSON is smaller than HTML escaped JSON
Return a data tag with the base64 encoded JSON-serialized args generated with the slower to_json
def pagy_data(pagy, *args)
  args << pagy.vars[:page_param] if pagy.vars[:trim_extra]
  strict_base64_encoded = [args.to_json].pack('m0')
  %(data-pagy="#{strict_base64_encoded}")
end

def pagy_marked_link(link)

Return the marked link to used by pagy.js
def pagy_marked_link(link)
  link.call PAGE_PLACEHOLDER, '', 'style="display: none;"'
end