pagy 7.0.11 → 8.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/apps/calendar.ru +2196 -0
  3. data/apps/demo.ru +452 -0
  4. data/apps/rails.ru +205 -0
  5. data/apps/repro.ru +168 -0
  6. data/bin/pagy +83 -0
  7. data/{lib/config → config}/pagy.rb +6 -17
  8. data/javascripts/pagy-dev.js +114 -0
  9. data/{lib/javascripts → javascripts}/pagy-module.js +12 -10
  10. data/javascripts/pagy.js +1 -0
  11. data/lib/optimist.rb +1022 -0
  12. data/lib/pagy/calendar.rb +1 -1
  13. data/lib/pagy/console.rb +2 -2
  14. data/lib/pagy/countless.rb +1 -1
  15. data/lib/pagy/extras/bootstrap.rb +52 -63
  16. data/lib/pagy/extras/bulma.rb +49 -64
  17. data/lib/pagy/extras/calendar.rb +2 -2
  18. data/lib/pagy/extras/countless.rb +1 -1
  19. data/lib/pagy/extras/foundation.rb +49 -61
  20. data/lib/pagy/extras/headers.rb +1 -1
  21. data/lib/pagy/extras/items.rb +21 -18
  22. data/lib/pagy/extras/{frontend_helpers.rb → js_tools.rb} +4 -1
  23. data/lib/pagy/extras/jsonapi.rb +1 -1
  24. data/lib/pagy/extras/materialize.rb +53 -51
  25. data/lib/pagy/extras/metadata.rb +1 -1
  26. data/lib/pagy/extras/pagy.rb +82 -0
  27. data/lib/pagy/extras/semantic.rb +47 -50
  28. data/lib/pagy/extras/trim.rb +12 -12
  29. data/lib/pagy/extras/uikit.rb +48 -49
  30. data/lib/pagy/frontend.rb +33 -50
  31. data/lib/pagy/url_helpers.rb +1 -2
  32. data/lib/pagy.rb +15 -14
  33. data/{lib/locales → locales}/ar.yml +2 -2
  34. data/{lib/locales → locales}/be.yml +4 -4
  35. data/{lib/locales → locales}/bg.yml +4 -4
  36. data/{lib/locales → locales}/bs.yml +4 -4
  37. data/{lib/locales → locales}/ca.yml +4 -4
  38. data/locales/ckb.yml +18 -0
  39. data/{lib/locales → locales}/cs.yml +4 -4
  40. data/{lib/locales → locales}/da.yml +4 -4
  41. data/{lib/locales → locales}/de.yml +4 -4
  42. data/{lib/locales → locales}/en.yml +4 -4
  43. data/{lib/locales → locales}/es.yml +2 -2
  44. data/{lib/locales → locales}/fr.yml +4 -4
  45. data/{lib/locales → locales}/hr.yml +4 -4
  46. data/{lib/locales → locales}/id.yml +4 -4
  47. data/{lib/locales → locales}/it.yml +4 -4
  48. data/{lib/locales → locales}/ja.yml +4 -4
  49. data/{lib/locales → locales}/km.yml +4 -4
  50. data/{lib/locales → locales}/ko.yml +4 -4
  51. data/{lib/locales → locales}/nb.yml +4 -4
  52. data/{lib/locales → locales}/nl.yml +4 -4
  53. data/{lib/locales → locales}/nn.yml +4 -4
  54. data/{lib/locales → locales}/pl.yml +4 -4
  55. data/{lib/locales → locales}/pt-BR.yml +2 -2
  56. data/{lib/locales → locales}/pt.yml +2 -2
  57. data/locales/ru.yml +25 -0
  58. data/{lib/locales → locales}/sr.yml +4 -4
  59. data/{lib/locales → locales}/sv-SE.yml +4 -4
  60. data/{lib/locales → locales}/sv.yml +4 -4
  61. data/{lib/locales → locales}/sw.yml +4 -4
  62. data/{lib/locales → locales}/ta.yml +4 -4
  63. data/{lib/locales → locales}/tr.yml +4 -4
  64. data/{lib/locales → locales}/uk.yml +4 -4
  65. data/{lib/locales → locales}/vi.yml +4 -4
  66. data/{lib/locales → locales}/zh-CN.yml +4 -4
  67. data/{lib/locales → locales}/zh-HK.yml +4 -4
  68. data/{lib/locales → locales}/zh-TW.yml +4 -4
  69. data/pkg/pagy-8.0.1.gem +0 -0
  70. data/{lib/stylesheets → stylesheets}/pagy.css +19 -34
  71. data/{lib/stylesheets → stylesheets}/pagy.scss +17 -19
  72. data/stylesheets/pagy.tailwind.css +21 -0
  73. metadata +65 -51
  74. data/lib/javascripts/pagy-dev.js +0 -112
  75. data/lib/javascripts/pagy.js +0 -1
  76. data/lib/locales/ckb.yml +0 -18
  77. data/lib/locales/ru.yml +0 -27
  78. data/lib/pagy/extras/navs.rb +0 -51
  79. data/lib/pagy/extras/support.rb +0 -40
  80. data/lib/stylesheets/pagy.tailwind.scss +0 -24
  81. /data/{lib/javascripts → javascripts}/pagy-module.d.ts +0 -0
@@ -1,51 +0,0 @@
1
- # See the Pagy documentation: https://ddnexus.github.io/pagy/docs/extras/navs
2
- # frozen_string_literal: true
3
-
4
- require 'pagy/extras/frontend_helpers'
5
-
6
- class Pagy # :nodoc:
7
- # Frontend modules are specially optimized for performance.
8
- # The resulting code may not look very elegant, but produces the best benchmarks
9
- module NavsExtra
10
- # Javascript pagination: it returns a nav and a JSON tag used by the pagy.js file
11
- def pagy_nav_js(pagy, pagy_id: nil, link_extra: '',
12
- nav_aria_label: nil, nav_i18n_key: nil, **vars)
13
- sequels = pagy.sequels(**vars)
14
- p_id = %( id="#{pagy_id}") if pagy_id
15
- link = pagy_link_proc(pagy, link_extra:)
16
- tags = { 'before' => prev_html(pagy, link),
17
- 'link' => %(<span class="page">#{link.call(PAGE_TOKEN, LABEL_TOKEN)}</span>),
18
- 'active' => %(<span class="page active">) +
19
- %(<a role="link" aria-current="page" aria-disabled="true">#{LABEL_TOKEN}</a></span>),
20
- 'gap' => %(<span class="page gap">#{pagy_t 'pagy.gap'}</span>),
21
- 'after' => next_html(pagy, link) }
22
-
23
- %(<nav#{p_id} class="#{'pagy-rjs ' if sequels.size > 1}pagy pagy-nav-js pagination" #{
24
- nav_aria_label_attr(pagy, nav_aria_label, nav_i18n_key)} #{
25
- pagy_data(pagy, :nav, tags, sequels, pagy.label_sequels(sequels))
26
- }></nav>)
27
- end
28
-
29
- # Javascript combo pagination: it returns a nav and a JSON tag used by the pagy.js file
30
- def pagy_combo_nav_js(pagy, pagy_id: nil, link_extra: '',
31
- nav_aria_label: nil, nav_i18n_key: nil)
32
- p_id = %( id="#{pagy_id}") if pagy_id
33
- link = pagy_link_proc(pagy, link_extra:)
34
- p_page = pagy.page
35
- p_pages = pagy.pages
36
- input = %(<input name="page" type="number" min="1" max="#{p_pages}" value="#{p_page}" ) +
37
- %(style="padding: 0; text-align: center; width: #{p_pages.to_s.length + 1}rem;" aria-current="page">)
38
-
39
- %(<nav#{p_id} class="pagy pagy-combo-nav-js pagination" #{
40
- nav_aria_label_attr(pagy, nav_aria_label, nav_i18n_key)} #{
41
- pagy_data(pagy, :combo, pagy_url_for(pagy, PAGE_TOKEN))}>#{
42
- prev_html(pagy, link)
43
- }<span class="pagy-combo-input">#{
44
- pagy_t('pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages)
45
- }</span>#{
46
- next_html(pagy, link)
47
- }</nav>)
48
- end
49
- end
50
- Frontend.prepend NavsExtra
51
- end
@@ -1,40 +0,0 @@
1
- # See the Pagy documentation: https://ddnexus.github.io/pagy/docs/extras/support
2
- # frozen_string_literal: true
3
-
4
- class Pagy # :nodoc:
5
- # Extra support for features like: incremental, auto-incremental and infinite pagination
6
- module SupportExtra
7
- # Return the previous page URL string or nil
8
- def pagy_prev_url(pagy, absolute: false)
9
- pagy_url_for(pagy, pagy.prev, absolute:) if pagy.prev
10
- end
11
-
12
- # Return the next page URL string or nil
13
- def pagy_next_url(pagy, absolute: false)
14
- pagy_url_for(pagy, pagy.next, absolute:) if pagy.next
15
- end
16
-
17
- # Return the HTML string for the enabled/disabled previous page link
18
- def pagy_prev_html(pagy, text: pagy_t('pagy.prev'), link_extra: '')
19
- link = pagy_link_proc(pagy, link_extra:)
20
- prev_html(pagy, link, text:)
21
- end
22
-
23
- # Return the HTML string for the enabled/disabled next page link
24
- def pagy_next_html(pagy, text: pagy_t('pagy.next'), link_extra: '')
25
- link = pagy_link_proc(pagy, link_extra:)
26
- next_html(pagy, link, text:)
27
- end
28
-
29
- # Conditionally return the HTML link tag string for the previous page
30
- def pagy_prev_link_tag(pagy, absolute: false)
31
- %(<link href="#{pagy_url_for(pagy, pagy.prev, absolute:)}" rel="prev"/>) if pagy.prev
32
- end
33
-
34
- # Conditionally return the HTML link tag string for the next page
35
- def pagy_next_link_tag(pagy, absolute: false)
36
- %(<link href="#{pagy_url_for(pagy, pagy.next, absolute:)}" rel="next"/>) if pagy.next
37
- end
38
- end
39
- Frontend.prepend SupportExtra
40
- end
@@ -1,24 +0,0 @@
1
- .pagy {
2
- @apply flex space-x-1 font-semibold text-sm text-gray-500;
3
- .page {
4
- a {
5
- @apply block rounded-lg px-3 py-1 bg-gray-200;
6
- &:hover {
7
- @apply bg-gray-300;
8
- }
9
- }
10
- &.active a {
11
- @apply text-white bg-gray-400 cursor-default;
12
- }
13
- &.disabled a {
14
- @apply text-gray-300 bg-gray-100 cursor-default;
15
- }
16
- &.gap { } /* if you need to customize it */
17
- }
18
- .pagy-combo-input, &.pagy-items-selector-js {
19
- @apply inline-block whitespace-nowrap bg-gray-200 rounded-lg px-3 py-0.5;
20
- input {
21
- @apply bg-gray-100 border-none rounded-md;
22
- }
23
- }
24
- }
File without changes