pagy 7.0.11 → 8.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/gem/apps/calendar.ru +2196 -0
  3. data/gem/apps/demo.ru +452 -0
  4. data/gem/apps/rails.ru +205 -0
  5. data/gem/apps/repro.ru +168 -0
  6. data/gem/bin/pagy +83 -0
  7. data/{lib → gem}/config/pagy.rb +6 -17
  8. data/{lib → gem}/javascripts/pagy-dev.js +10 -10
  9. data/{lib → gem}/javascripts/pagy-module.js +9 -9
  10. data/gem/javascripts/pagy.js +1 -0
  11. data/gem/lib/optimist.rb +1022 -0
  12. data/gem/lib/pagy/extras/bootstrap.rb +97 -0
  13. data/gem/lib/pagy/extras/bulma.rb +89 -0
  14. data/gem/lib/pagy/extras/foundation.rb +93 -0
  15. data/{lib → gem/lib}/pagy/extras/items.rb +21 -18
  16. data/{lib/pagy/extras/frontend_helpers.rb → gem/lib/pagy/extras/js_tools.rb} +1 -1
  17. data/gem/lib/pagy/extras/materialize.rb +97 -0
  18. data/gem/lib/pagy/extras/pagy.rb +82 -0
  19. data/gem/lib/pagy/extras/semantic.rb +91 -0
  20. data/gem/lib/pagy/extras/trim.rb +29 -0
  21. data/gem/lib/pagy/extras/uikit.rb +96 -0
  22. data/gem/lib/pagy/frontend.rb +97 -0
  23. data/{lib → gem/lib}/pagy/url_helpers.rb +1 -2
  24. data/{lib → gem/lib}/pagy.rb +12 -11
  25. data/{lib → gem}/locales/ar.yml +2 -2
  26. data/{lib → gem}/locales/be.yml +4 -4
  27. data/{lib → gem}/locales/bg.yml +4 -4
  28. data/{lib → gem}/locales/bs.yml +4 -4
  29. data/{lib → gem}/locales/ca.yml +4 -4
  30. data/gem/locales/ckb.yml +18 -0
  31. data/{lib → gem}/locales/cs.yml +4 -4
  32. data/{lib → gem}/locales/da.yml +4 -4
  33. data/{lib → gem}/locales/de.yml +4 -4
  34. data/{lib → gem}/locales/en.yml +4 -4
  35. data/{lib → gem}/locales/es.yml +2 -2
  36. data/{lib → gem}/locales/fr.yml +4 -4
  37. data/{lib → gem}/locales/hr.yml +4 -4
  38. data/{lib → gem}/locales/id.yml +4 -4
  39. data/{lib → gem}/locales/it.yml +4 -4
  40. data/{lib → gem}/locales/ja.yml +4 -4
  41. data/{lib → gem}/locales/km.yml +4 -4
  42. data/{lib → gem}/locales/ko.yml +4 -4
  43. data/{lib → gem}/locales/nb.yml +4 -4
  44. data/{lib → gem}/locales/nl.yml +4 -4
  45. data/{lib → gem}/locales/nn.yml +4 -4
  46. data/{lib → gem}/locales/pl.yml +4 -4
  47. data/{lib → gem}/locales/pt-BR.yml +2 -2
  48. data/{lib → gem}/locales/pt.yml +2 -2
  49. data/{lib → gem}/locales/ru.yml +4 -4
  50. data/{lib → gem}/locales/sr.yml +4 -4
  51. data/{lib → gem}/locales/sv-SE.yml +4 -4
  52. data/{lib → gem}/locales/sv.yml +4 -4
  53. data/{lib → gem}/locales/sw.yml +4 -4
  54. data/{lib → gem}/locales/ta.yml +4 -4
  55. data/{lib → gem}/locales/tr.yml +4 -4
  56. data/{lib → gem}/locales/uk.yml +4 -4
  57. data/{lib → gem}/locales/vi.yml +4 -4
  58. data/{lib → gem}/locales/zh-CN.yml +4 -4
  59. data/{lib → gem}/locales/zh-HK.yml +4 -4
  60. data/{lib → gem}/locales/zh-TW.yml +4 -4
  61. data/{lib → gem}/stylesheets/pagy.css +19 -34
  62. data/{lib → gem}/stylesheets/pagy.scss +17 -19
  63. data/gem/stylesheets/pagy.tailwind.css +21 -0
  64. metadata +103 -90
  65. data/lib/javascripts/pagy.js +0 -1
  66. data/lib/locales/ckb.yml +0 -18
  67. data/lib/pagy/extras/bootstrap.rb +0 -108
  68. data/lib/pagy/extras/bulma.rb +0 -105
  69. data/lib/pagy/extras/foundation.rb +0 -105
  70. data/lib/pagy/extras/materialize.rb +0 -96
  71. data/lib/pagy/extras/navs.rb +0 -51
  72. data/lib/pagy/extras/semantic.rb +0 -95
  73. data/lib/pagy/extras/support.rb +0 -40
  74. data/lib/pagy/extras/trim.rb +0 -29
  75. data/lib/pagy/extras/uikit.rb +0 -97
  76. data/lib/pagy/frontend.rb +0 -114
  77. data/lib/stylesheets/pagy.tailwind.scss +0 -24
  78. /data/{lib → gem}/javascripts/pagy-module.d.ts +0 -0
  79. /data/{lib → gem/lib}/pagy/backend.rb +0 -0
  80. /data/{lib → gem/lib}/pagy/calendar/day.rb +0 -0
  81. /data/{lib → gem/lib}/pagy/calendar/helper.rb +0 -0
  82. /data/{lib → gem/lib}/pagy/calendar/month.rb +0 -0
  83. /data/{lib → gem/lib}/pagy/calendar/quarter.rb +0 -0
  84. /data/{lib → gem/lib}/pagy/calendar/week.rb +0 -0
  85. /data/{lib → gem/lib}/pagy/calendar/year.rb +0 -0
  86. /data/{lib → gem/lib}/pagy/calendar.rb +0 -0
  87. /data/{lib → gem/lib}/pagy/console.rb +0 -0
  88. /data/{lib → gem/lib}/pagy/countless.rb +0 -0
  89. /data/{lib → gem/lib}/pagy/exceptions.rb +0 -0
  90. /data/{lib → gem/lib}/pagy/extras/arel.rb +0 -0
  91. /data/{lib → gem/lib}/pagy/extras/array.rb +0 -0
  92. /data/{lib → gem/lib}/pagy/extras/calendar.rb +0 -0
  93. /data/{lib → gem/lib}/pagy/extras/countless.rb +0 -0
  94. /data/{lib → gem/lib}/pagy/extras/elasticsearch_rails.rb +0 -0
  95. /data/{lib → gem/lib}/pagy/extras/gearbox.rb +0 -0
  96. /data/{lib → gem/lib}/pagy/extras/headers.rb +0 -0
  97. /data/{lib → gem/lib}/pagy/extras/i18n.rb +0 -0
  98. /data/{lib → gem/lib}/pagy/extras/jsonapi.rb +0 -0
  99. /data/{lib → gem/lib}/pagy/extras/meilisearch.rb +0 -0
  100. /data/{lib → gem/lib}/pagy/extras/metadata.rb +0 -0
  101. /data/{lib → gem/lib}/pagy/extras/overflow.rb +0 -0
  102. /data/{lib → gem/lib}/pagy/extras/searchkick.rb +0 -0
  103. /data/{lib → gem/lib}/pagy/extras/standalone.rb +0 -0
  104. /data/{lib → gem/lib}/pagy/i18n.rb +0 -0
@@ -17,7 +17,7 @@ sw:
17
17
  other: "vifaa"
18
18
  info:
19
19
  no_items: "Hamna %{item_name} vilivyopatikana"
20
- single_page: "Inaonyesha %{item_name} <b>%{count}</b>"
21
- multiple_pages: "Inaonyesha %{item_name} <b>%{from}-%{to}</b> ya <b>%{count}</b> kwa jumla"
22
- combo_nav_js: "<label>Kurasa %{page_input} ya %{pages}</label>"
23
- items_selector_js: "<label>Onyesha %{items_input} %{item_name} kwa kila ukurasa</label>"
20
+ single_page: "Inaonyesha %{item_name} %{count}"
21
+ multiple_pages: "Inaonyesha %{item_name} %{from}-%{to} ya %{count} kwa jumla"
22
+ combo_nav_js: "Kurasa %{page_input} ya %{pages}"
23
+ items_selector_js: "Onyesha %{items_input} %{item_name} kwa kila ukurasa"
@@ -17,7 +17,7 @@ ta:
17
17
  other: "பதிவுகள்"
18
18
  info:
19
19
  no_items: "%{item_name} கிடைக்கவில்லை"
20
- single_page: "<b>%{count}</b> %{item_name} காட்டப்படுகின்றது"
21
- multiple_pages: "மொத்தம் <b>%{count}</b> %{item_name}, காட்டப்படுபவை <b>%{from}-%{to}</b>"
22
- combo_nav_js: "<label>%{pages}-இல் %{page_input}-வது பக்கம்</label>"
23
- items_selector_js: "<label>ஒரு பக்கத்திற்கு %{items_input} %{item_name} காட்டு</label>"
20
+ single_page: "%{count} %{item_name} காட்டப்படுகின்றது"
21
+ multiple_pages: "மொத்தம் %{count} %{item_name}, காட்டப்படுபவை %{from}-%{to}"
22
+ combo_nav_js: "%{pages}-இல் %{page_input}-வது பக்கம்"
23
+ items_selector_js: "ஒரு பக்கத்திற்கு %{items_input} %{item_name} காட்டு"
@@ -13,7 +13,7 @@ tr:
13
13
  item_name: "kayıt"
14
14
  info:
15
15
  no_items: "Hiç %{item_name} bulunamadı"
16
- single_page: "Toplam <b>%{count}</b> %{item_name} gösteriliyor"
17
- multiple_pages: "<b>%{count}</b> %{item_name} içerisinden <b>%{from}-%{to}</b> kadarı gösteriliyor"
18
- combo_nav_js: "<label>Sayfa %{page_input} / %{pages}</label>"
19
- items_selector_js: "<label>Sayfada %{items_input} %{item_name} göster</label>"
16
+ single_page: "Toplam %{count} %{item_name} gösteriliyor"
17
+ multiple_pages: "%{count} %{item_name} içerisinden %{from}-%{to} kadarı gösteriliyor"
18
+ combo_nav_js: "Sayfa %{page_input} / %{pages}"
19
+ items_selector_js: "Sayfada %{items_input} %{item_name} göster"
@@ -19,7 +19,7 @@ uk:
19
19
  other: "записів"
20
20
  info:
21
21
  no_items: "Більше %{item_name} немає"
22
- single_page: "<b>%{count}</b> %{item_name}"
23
- multiple_pages: "Загалом <b>%{count}</b> %{item_name}, показані з <b>%{from}</b> по <b>%{to}</b>"
24
- combo_nav_js: "<label>Сторінка %{page_input} з %{pages}</label>"
25
- items_selector_js: "<label>Показати %{items_input} %{item_name} на сторінці</label>"
22
+ single_page: "%{count} %{item_name}"
23
+ multiple_pages: "Загалом %{count} %{item_name}, показані з %{from} по %{to}"
24
+ combo_nav_js: "Сторінка %{page_input} з %{pages}"
25
+ items_selector_js: "Показати %{items_input} %{item_name} на сторінці"
@@ -11,7 +11,7 @@ vi:
11
11
  item_name: "kết quả"
12
12
  info:
13
13
  no_items: "Không tìm thấy %{item_name} nào"
14
- single_page: "<b>%{count}</b> %{item_name}"
15
- multiple_pages: "Đang hiển thị <b>%{from}-%{to}</b> trong tổng số <b>%{count} %{item_name}</b>"
16
- combo_nav_js: "<label>Trang %{page_input} trên %{pages}</label>"
17
- items_selector_js: "<label>Hiển thị %{items_input} %{item_name} mỗi trang</label>"
14
+ single_page: "%{count} %{item_name}"
15
+ multiple_pages: "Đang hiển thị %{from}-%{to} trong tổng số %{count} %{item_name}"
16
+ combo_nav_js: "Trang %{page_input} trên %{pages}"
17
+ items_selector_js: "Hiển thị %{items_input} %{item_name} mỗi trang"
@@ -13,7 +13,7 @@ zh-CN:
13
13
  item_name: ""
14
14
  info:
15
15
  no_items: "项目未找到"
16
- single_page: "显示<b>%{count}</b> 项%{item_name}"
17
- multiple_pages: "共 <b>%{count}</b> 项%{item_name},显示 <b>%{from}-%{to}</b>"
18
- combo_nav_js: "<label>第 %{page_input} / %{pages} 页</label>"
19
- items_selector_js: "<label>每页显示 %{items_input} 条%</label>"
16
+ single_page: "显示%{count} 项%{item_name}"
17
+ multiple_pages: "共 %{count} 项%{item_name},显示 %{from}-%{to}"
18
+ combo_nav_js: " %{page_input} / %{pages} "
19
+ items_selector_js: "每页显示 %{items_input} 条%"
@@ -13,7 +13,7 @@ zh-HK:
13
13
  item_name: ""
14
14
  info:
15
15
  no_items: "記錄未搵到"
16
- single_page: "顯示 <b>%{count}</b> %{item_name}"
17
- multiple_pages: "共 <b>%{count}</b> %{item_name},顯示 <b>%{from}-%{to}</b>"
18
- combo_nav_js: "<label>第 %{page_input} / %{pages} 頁</label>"
19
- items_selector_js: "<label>每頁顯示 %{items_input} 記錄</label>"
16
+ single_page: "顯示 %{count} %{item_name}"
17
+ multiple_pages: "共 %{count} %{item_name},顯示 %{from}-%{to}"
18
+ combo_nav_js: " %{page_input} / %{pages} "
19
+ items_selector_js: "每頁顯示 %{items_input} 記錄"
@@ -13,7 +13,7 @@ zh-TW:
13
13
  item_name: ""
14
14
  info:
15
15
  no_items: "沒找到項"
16
- single_page: "顯示 <b>%{count}</b> 項%{item_name}"
17
- multiple_pages: "共 <b>%{count}</b> 項%{item_name},顯示 <b>%{from}-%{to}</b>"
18
- combo_nav_js: "<label>第 %{page_input} / %{pages} 頁</label>"
19
- items_selector_js: "<label>每頁顯示 %{items_input} 項%{item_name}</label>"
16
+ single_page: "顯示 %{count} 項%{item_name}"
17
+ multiple_pages: "共 %{count} 項%{item_name},顯示 %{from}-%{to}"
18
+ combo_nav_js: " %{page_input} / %{pages} "
19
+ items_selector_js: "每頁顯示 %{items_input} 項%{item_name}"
@@ -1,61 +1,46 @@
1
1
  .pagy {
2
2
  display: flex;
3
- }
4
-
5
- .pagy > :not([hidden]) ~ :not([hidden]) {
6
- --space-reverse: 0;
7
- margin-right: calc(0.25rem * var(--space-reverse));
8
- margin-left: calc(0.25rem * calc(1 - var(--space-reverse)));
9
- }
10
-
11
- .pagy {
12
3
  font-family: sans-serif;
13
4
  font-size: 0.875rem;
14
5
  line-height: 1.25rem;
15
6
  font-weight: 600;
16
- color: rgb(107 114 128);
7
+ color: #6b7280;
17
8
  }
18
-
19
- .pagy .page.gap {
20
- /* if you need to customize it */
9
+ .pagy > :not([hidden]) ~ :not([hidden]) {
10
+ --space-reverse: 0;
11
+ margin-right: calc(0.25rem * var(--space-reverse));
12
+ margin-left: calc(0.25rem * calc(1 - var(--space-reverse)));
21
13
  }
22
-
23
- .pagy .page a {
14
+ .pagy a:not(.gap) {
24
15
  display: block;
25
16
  text-decoration: none;
26
17
  border-radius: 0.5rem;
27
- background-color: rgb(229 231 235);
18
+ background-color: #e5e7eb;
28
19
  padding: 0.25rem 0.75rem;
29
20
  color: inherit;
30
21
  }
31
-
32
- .pagy .page a:hover {
33
- background-color: rgb(209 213 219);
22
+ .pagy a:not(.gap):hover {
23
+ background-color: #d1d5db;
34
24
  }
35
-
36
- .pagy .page.active a {
25
+ .pagy a:not(.gap):not([href]) { /* disabled links */
37
26
  cursor: default;
38
- background-color: rgb(156 163 175);
39
- color: rgb(255 255 255);
27
+ background-color: #f3f4f6;
28
+ color: #d1d5db;
40
29
  }
41
-
42
- .pagy .page.disabled a {
43
- cursor: default;
44
- background-color: rgb(243 244 246);
45
- color: rgb(209 213 219);
30
+ .pagy a:not(.gap).current {
31
+ background-color: #9ca3af;
32
+ color: white;
46
33
  }
47
-
48
- .pagy .pagy-combo-input, .pagy.pagy-items-selector-js {
34
+ .pagy label {
49
35
  white-space: nowrap;
50
36
  display: inline-block;
51
37
  border-radius: 0.5rem;
52
- background-color: rgb(229 231 235);
38
+ background-color: #e5e7eb;
53
39
  padding: 0.125rem 0.75rem;
54
40
  }
55
-
56
- .pagy .pagy-combo-input input, .pagy.pagy-items-selector-js input {
41
+ .pagy label input {
57
42
  line-height: 1.5rem;
58
43
  border-radius: 0.375rem;
59
44
  border-style: none;
60
- background-color: rgb(243 244 246);
45
+ background-color: #f3f4f6;
61
46
  }
@@ -10,31 +10,29 @@
10
10
  margin-right: calc(0.25rem * var(--space-reverse));
11
11
  margin-left: calc(0.25rem * calc(1 - var(--space-reverse)));
12
12
  }
13
- .page {
14
- a {
15
- display: block;
16
- text-decoration: none;
17
- border-radius: 0.5rem;
18
- background-color: rgb(229 231 235);
19
- padding: 0.25rem 0.75rem;
20
- color: inherit;
21
- &:hover {
22
- background-color: rgb(209 213 219);
23
- }
24
- }
25
- &.active a {
26
- cursor: default;
27
- background-color: rgb(156 163 175);
28
- color: rgb(255 255 255);
13
+
14
+ a:not(.gap) {
15
+ display: block;
16
+ text-decoration: none;
17
+ border-radius: 0.5rem;
18
+ background-color: rgb(229 231 235);
19
+ padding: 0.25rem 0.75rem;
20
+ color: inherit;
21
+ &:hover {
22
+ background-color: rgb(209 213 219);
29
23
  }
30
- &.disabled a {
24
+ &:not([href]) { /* disabled links */
31
25
  cursor: default;
32
26
  background-color: rgb(243 244 246);
33
27
  color: rgb(209 213 219);
34
28
  }
35
- &.gap { } /* if you need to customize it */
29
+ &.current {
30
+ background-color: rgb(156 163 175);
31
+ color: rgb(255 255 255);
32
+ }
36
33
  }
37
- .pagy-combo-input, &.pagy-items-selector-js {
34
+
35
+ label {
38
36
  white-space: nowrap;
39
37
  display: inline-block;
40
38
  border-radius: 0.5rem;
@@ -0,0 +1,21 @@
1
+ .pagy {
2
+ @apply flex space-x-1 font-semibold text-sm text-gray-500;
3
+ a:not(.gap) {
4
+ @apply block rounded-lg px-3 py-1 bg-gray-200;
5
+ &:hover {
6
+ @apply bg-gray-300;
7
+ }
8
+ &:not([href]) { /* disabled links */
9
+ @apply text-gray-300 bg-gray-100 cursor-default;
10
+ }
11
+ &.current {
12
+ @apply text-white bg-gray-400;
13
+ }
14
+ }
15
+ label {
16
+ @apply inline-block whitespace-nowrap bg-gray-200 rounded-lg px-3 py-0.5;
17
+ input {
18
+ @apply bg-gray-100 border-none rounded-md;
19
+ }
20
+ }
21
+ }
metadata CHANGED
@@ -1,107 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagy
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.11
4
+ version: 8.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Domizio Demichelis
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: gem/bin
10
10
  cert_chain: []
11
- date: 2024-03-18 00:00:00.000000000 Z
11
+ date: 2024-04-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Agnostic pagination in plain ruby. It does it all. Better.
14
14
  email:
15
15
  - dd.nexus@gmail.com
16
- executables: []
16
+ executables:
17
+ - pagy
17
18
  extensions: []
18
19
  extra_rdoc_files: []
19
20
  files:
20
21
  - LICENSE.txt
21
- - lib/config/pagy.rb
22
- - lib/javascripts/pagy-dev.js
23
- - lib/javascripts/pagy-module.d.ts
24
- - lib/javascripts/pagy-module.js
25
- - lib/javascripts/pagy.js
26
- - lib/locales/ar.yml
27
- - lib/locales/be.yml
28
- - lib/locales/bg.yml
29
- - lib/locales/bs.yml
30
- - lib/locales/ca.yml
31
- - lib/locales/ckb.yml
32
- - lib/locales/cs.yml
33
- - lib/locales/da.yml
34
- - lib/locales/de.yml
35
- - lib/locales/en.yml
36
- - lib/locales/es.yml
37
- - lib/locales/fr.yml
38
- - lib/locales/hr.yml
39
- - lib/locales/id.yml
40
- - lib/locales/it.yml
41
- - lib/locales/ja.yml
42
- - lib/locales/km.yml
43
- - lib/locales/ko.yml
44
- - lib/locales/nb.yml
45
- - lib/locales/nl.yml
46
- - lib/locales/nn.yml
47
- - lib/locales/pl.yml
48
- - lib/locales/pt-BR.yml
49
- - lib/locales/pt.yml
50
- - lib/locales/ru.yml
51
- - lib/locales/sr.yml
52
- - lib/locales/sv-SE.yml
53
- - lib/locales/sv.yml
54
- - lib/locales/sw.yml
55
- - lib/locales/ta.yml
56
- - lib/locales/tr.yml
57
- - lib/locales/uk.yml
58
- - lib/locales/vi.yml
59
- - lib/locales/zh-CN.yml
60
- - lib/locales/zh-HK.yml
61
- - lib/locales/zh-TW.yml
62
- - lib/pagy.rb
63
- - lib/pagy/backend.rb
64
- - lib/pagy/calendar.rb
65
- - lib/pagy/calendar/day.rb
66
- - lib/pagy/calendar/helper.rb
67
- - lib/pagy/calendar/month.rb
68
- - lib/pagy/calendar/quarter.rb
69
- - lib/pagy/calendar/week.rb
70
- - lib/pagy/calendar/year.rb
71
- - lib/pagy/console.rb
72
- - lib/pagy/countless.rb
73
- - lib/pagy/exceptions.rb
74
- - lib/pagy/extras/arel.rb
75
- - lib/pagy/extras/array.rb
76
- - lib/pagy/extras/bootstrap.rb
77
- - lib/pagy/extras/bulma.rb
78
- - lib/pagy/extras/calendar.rb
79
- - lib/pagy/extras/countless.rb
80
- - lib/pagy/extras/elasticsearch_rails.rb
81
- - lib/pagy/extras/foundation.rb
82
- - lib/pagy/extras/frontend_helpers.rb
83
- - lib/pagy/extras/gearbox.rb
84
- - lib/pagy/extras/headers.rb
85
- - lib/pagy/extras/i18n.rb
86
- - lib/pagy/extras/items.rb
87
- - lib/pagy/extras/jsonapi.rb
88
- - lib/pagy/extras/materialize.rb
89
- - lib/pagy/extras/meilisearch.rb
90
- - lib/pagy/extras/metadata.rb
91
- - lib/pagy/extras/navs.rb
92
- - lib/pagy/extras/overflow.rb
93
- - lib/pagy/extras/searchkick.rb
94
- - lib/pagy/extras/semantic.rb
95
- - lib/pagy/extras/standalone.rb
96
- - lib/pagy/extras/support.rb
97
- - lib/pagy/extras/trim.rb
98
- - lib/pagy/extras/uikit.rb
99
- - lib/pagy/frontend.rb
100
- - lib/pagy/i18n.rb
101
- - lib/pagy/url_helpers.rb
102
- - lib/stylesheets/pagy.css
103
- - lib/stylesheets/pagy.scss
104
- - lib/stylesheets/pagy.tailwind.scss
22
+ - gem/apps/calendar.ru
23
+ - gem/apps/demo.ru
24
+ - gem/apps/rails.ru
25
+ - gem/apps/repro.ru
26
+ - gem/bin/pagy
27
+ - gem/config/pagy.rb
28
+ - gem/javascripts/pagy-dev.js
29
+ - gem/javascripts/pagy-module.d.ts
30
+ - gem/javascripts/pagy-module.js
31
+ - gem/javascripts/pagy.js
32
+ - gem/lib/optimist.rb
33
+ - gem/lib/pagy.rb
34
+ - gem/lib/pagy/backend.rb
35
+ - gem/lib/pagy/calendar.rb
36
+ - gem/lib/pagy/calendar/day.rb
37
+ - gem/lib/pagy/calendar/helper.rb
38
+ - gem/lib/pagy/calendar/month.rb
39
+ - gem/lib/pagy/calendar/quarter.rb
40
+ - gem/lib/pagy/calendar/week.rb
41
+ - gem/lib/pagy/calendar/year.rb
42
+ - gem/lib/pagy/console.rb
43
+ - gem/lib/pagy/countless.rb
44
+ - gem/lib/pagy/exceptions.rb
45
+ - gem/lib/pagy/extras/arel.rb
46
+ - gem/lib/pagy/extras/array.rb
47
+ - gem/lib/pagy/extras/bootstrap.rb
48
+ - gem/lib/pagy/extras/bulma.rb
49
+ - gem/lib/pagy/extras/calendar.rb
50
+ - gem/lib/pagy/extras/countless.rb
51
+ - gem/lib/pagy/extras/elasticsearch_rails.rb
52
+ - gem/lib/pagy/extras/foundation.rb
53
+ - gem/lib/pagy/extras/gearbox.rb
54
+ - gem/lib/pagy/extras/headers.rb
55
+ - gem/lib/pagy/extras/i18n.rb
56
+ - gem/lib/pagy/extras/items.rb
57
+ - gem/lib/pagy/extras/js_tools.rb
58
+ - gem/lib/pagy/extras/jsonapi.rb
59
+ - gem/lib/pagy/extras/materialize.rb
60
+ - gem/lib/pagy/extras/meilisearch.rb
61
+ - gem/lib/pagy/extras/metadata.rb
62
+ - gem/lib/pagy/extras/overflow.rb
63
+ - gem/lib/pagy/extras/pagy.rb
64
+ - gem/lib/pagy/extras/searchkick.rb
65
+ - gem/lib/pagy/extras/semantic.rb
66
+ - gem/lib/pagy/extras/standalone.rb
67
+ - gem/lib/pagy/extras/trim.rb
68
+ - gem/lib/pagy/extras/uikit.rb
69
+ - gem/lib/pagy/frontend.rb
70
+ - gem/lib/pagy/i18n.rb
71
+ - gem/lib/pagy/url_helpers.rb
72
+ - gem/locales/ar.yml
73
+ - gem/locales/be.yml
74
+ - gem/locales/bg.yml
75
+ - gem/locales/bs.yml
76
+ - gem/locales/ca.yml
77
+ - gem/locales/ckb.yml
78
+ - gem/locales/cs.yml
79
+ - gem/locales/da.yml
80
+ - gem/locales/de.yml
81
+ - gem/locales/en.yml
82
+ - gem/locales/es.yml
83
+ - gem/locales/fr.yml
84
+ - gem/locales/hr.yml
85
+ - gem/locales/id.yml
86
+ - gem/locales/it.yml
87
+ - gem/locales/ja.yml
88
+ - gem/locales/km.yml
89
+ - gem/locales/ko.yml
90
+ - gem/locales/nb.yml
91
+ - gem/locales/nl.yml
92
+ - gem/locales/nn.yml
93
+ - gem/locales/pl.yml
94
+ - gem/locales/pt-BR.yml
95
+ - gem/locales/pt.yml
96
+ - gem/locales/ru.yml
97
+ - gem/locales/sr.yml
98
+ - gem/locales/sv-SE.yml
99
+ - gem/locales/sv.yml
100
+ - gem/locales/sw.yml
101
+ - gem/locales/ta.yml
102
+ - gem/locales/tr.yml
103
+ - gem/locales/uk.yml
104
+ - gem/locales/vi.yml
105
+ - gem/locales/zh-CN.yml
106
+ - gem/locales/zh-HK.yml
107
+ - gem/locales/zh-TW.yml
108
+ - gem/stylesheets/pagy.css
109
+ - gem/stylesheets/pagy.scss
110
+ - gem/stylesheets/pagy.tailwind.css
105
111
  homepage: https://github.com/ddnexus/pagy
106
112
  licenses:
107
113
  - MIT
@@ -112,10 +118,17 @@ metadata:
112
118
  bug_tracker_uri: https://github.com/ddnexus/pagy/issues
113
119
  changelog_uri: https://github.com/ddnexus/pagy/blob/master/CHANGELOG.md
114
120
  support: https://github.com/ddnexus/pagy/discussions/categories/q-a
115
- post_install_message:
121
+ post_install_message: |
122
+ *********************** PAGY WARNING! ***********************
123
+ We may drop pagy's less used CSS extras.
124
+
125
+ If you wish to keep them alive, please, vote here:
126
+
127
+ https://github.com/ddnexus/pagy/discussions/categories/survey
128
+ *************************************************************
116
129
  rdoc_options: []
117
130
  require_paths:
118
- - lib
131
+ - gem/lib
119
132
  required_ruby_version: !ruby/object:Gem::Requirement
120
133
  requirements:
121
134
  - - ">="
@@ -1 +0,0 @@
1
- !function(){let e=(()=>{let e=new ResizeObserver(e=>e.forEach(e=>e.target.querySelectorAll(".pagy-rjs").forEach(e=>e.pagyRender()))),t=(t,[r,n,a,i])=>{let l=t.parentElement??t,p=Object.keys(n).map(e=>parseInt(e)).sort((e,t)=>t-e),c=-1,s=(e,t,r)=>e.replace(/__pagy_page__/g,t).replace(/__pagy_label__/g,r);(t.pagyRender=function(){let e=p.find(e=>e<l.clientWidth)||0;if(e===c)return;let g=r.before,f=n[e.toString()],y=a?.[e.toString()]??f.map(e=>e.toString());for(let e in f){let t;let n=f[e],a=y[e];t="number"==typeof n?s(r.link,n.toString(),a):"gap"===n?r.gap:s(r.active,n,a),g+="string"==typeof i&&1==n?o(t,i):t}g+=r.after,t.innerHTML="",t.insertAdjacentHTML("afterbegin",g),c=e})(),t.classList.contains("pagy-rjs")&&e.observe(l)},r=(e,[t,r])=>a(e,e=>[e,t.replace(/__pagy_page__/,e)],r),n=(e,[t,r,n])=>{a(e,e=>{let n=Math.max(Math.ceil(t/parseInt(e)),1).toString(),a=r.replace(/__pagy_page__/,n).replace(/__pagy_items__/,e);return[n,a]},n)},a=(e,t,r)=>{let n=e.querySelector("input"),a=n.value,i=function(){if(n.value===a)return;let[e,i,l]=[n.min,n.value,n.max].map(e=>parseInt(e)||0);if(i<e||i>l){n.value=a,n.select();return}let[p,c]=t(n.value);"string"==typeof r&&"1"===p&&(c=o(c,r)),window.location.href=c};["change","focus"].forEach(e=>n.addEventListener(e,n.select)),n.addEventListener("focusout",i),n.addEventListener("keypress",e=>{"Enter"===e.key&&i()})},o=(e,t)=>e.replace(RegExp(`[?&]${t}=1\\b(?!&)|\\b${t}=1&`),"");return{version:"7.0.11",init(e){for(let a of(e instanceof Element?e:document).querySelectorAll("[data-pagy]"))try{let e=Uint8Array.from(atob(a.getAttribute("data-pagy")),e=>e.charCodeAt(0)),[o,...i]=JSON.parse(new TextDecoder().decode(e));"nav"===o?t(a,i):"combo"===o?r(a,i):"selector"===o?n(a,i):console.warn("Skipped Pagy.init() for: %o\nUnknown keyword '%s'",a,o)}catch(e){console.warn("Skipped Pagy.init() for: %o\n%s",a,e)}}}})();window.Pagy=e}();
data/lib/locales/ckb.yml DELETED
@@ -1,18 +0,0 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/lib/pagy/i18n.rb)
2
-
3
- ckb:
4
- pagy:
5
- item_name: "بابەت"
6
- aria_label:
7
- nav: "پەڕەکان"
8
- prev: "پاش"
9
- next: "پێش"
10
- prev: "&lt;"
11
- next: "&gt;"
12
- gap: "&hellip;"
13
- info:
14
- no_items: "هیچ %{item_name}ێک نەدۆزرایەوە"
15
- single_page: "پیشاندانی <b>%{count}</b> %{item_name}"
16
- multiple_pages: "پشاندانی %{item_name}ی <b>%{from}-%{to}</b> لە کۆی <b>%{count}</b> بە گشتی"
17
- combo_nav_js: "<label>پەڕی %{page_input} لە %{pages}</label>"
18
- items_selector_js: "<label>نیشاندانی %{items_input} %{item_name} لە هەر پەڕێک</label>"
@@ -1,108 +0,0 @@
1
- # See the Pagy documentation: https://ddnexus.github.io/pagy/docs/extras/bootstrap
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 BootstrapExtra
10
- # Pagination for bootstrap: it returns the html with the series of links to the pages
11
- def pagy_bootstrap_nav(pagy, pagy_id: nil, link_extra: '',
12
- nav_aria_label: nil, nav_i18n_key: nil, **vars)
13
- p_id = %( id="#{pagy_id}") if pagy_id
14
- link = pagy_link_proc(pagy, link_extra: %(class="page-link" #{link_extra}))
15
-
16
- html = +%(<nav#{p_id} class="pagy-bootstrap-nav" #{
17
- nav_aria_label_attr(pagy, nav_aria_label, nav_i18n_key)}><ul class="pagination">)
18
- html << bootstrap_prev_html(pagy, link)
19
- pagy.series(**vars).each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
20
- html << case item
21
- when Integer
22
- %(<li class="page-item">#{link.call(item)}</li>)
23
- when String
24
- %(<li class="page-item active"><a role="link" class="page-link" aria-current="page" aria-disabled="true">#{
25
- pagy.label_for(item)}</a></li>)
26
- when :gap
27
- %(<li class="page-item gap disabled"><a role="link" class="page-link" aria-disabled="true">#{
28
- pagy_t 'pagy.gap'}</a></li>)
29
- else raise InternalError, "expected item types in series to be Integer, String or :gap; got #{item.inspect}"
30
- end
31
- end
32
- html << bootstrap_next_html(pagy, link)
33
- html << %(</ul></nav>)
34
- end
35
-
36
- # Javascript pagination for bootstrap: it returns a nav and a JSON tag used by the pagy.js file
37
- def pagy_bootstrap_nav_js(pagy, pagy_id: nil, link_extra: '',
38
- nav_aria_label: nil, nav_i18n_key: nil, **vars)
39
- sequels = pagy.sequels(**vars)
40
- p_id = %( id="#{pagy_id}") if pagy_id
41
- link = pagy_link_proc(pagy, link_extra: %(class="page-link" #{link_extra}))
42
- tags = { 'before' => %(<ul class="pagination">#{bootstrap_prev_html pagy, link}),
43
- 'link' => %(<li class="page-item">#{link.call(PAGE_TOKEN, LABEL_TOKEN)}</li>),
44
- 'active' => %(<li class="page-item active"><a role="link" class="page-link" ) +
45
- %(aria-current="page" aria-disabled="true">#{LABEL_TOKEN}</a></li>),
46
- 'gap' => %(<li class="page-item gap disabled"><a role="link" class="page-link" aria-disabled="true">#{
47
- pagy_t 'pagy.gap'}</a></li>),
48
- 'after' => %(#{bootstrap_next_html pagy, link}</ul>) }
49
-
50
- %(<nav#{p_id} class="#{'pagy-rjs ' if sequels.size > 1}pagy-bootstrap-nav-js" #{
51
- nav_aria_label_attr(pagy, nav_aria_label, nav_i18n_key)} #{
52
- pagy_data(pagy, :nav, tags, sequels, pagy.label_sequels(sequels))
53
- }></nav>)
54
- end
55
-
56
- # Javascript combo pagination for bootstrap: it returns a nav and a JSON tag used by the pagy.js file
57
- def pagy_bootstrap_combo_nav_js(pagy, pagy_id: nil, link_extra: '',
58
- nav_aria_label: nil, nav_i18n_key: nil)
59
- p_id = %( id="#{pagy_id}") if pagy_id
60
- link = pagy_link_proc(pagy, link_extra:)
61
- p_page = pagy.page
62
- p_pages = pagy.pages
63
- input = %(<input name="page" type="number" min="1" max="#{p_pages}" value="#{
64
- p_page}" style="padding: 0; border: none; text-align: center; width: #{
65
- p_pages.to_s.length + 1}rem;" aria-current="page">)
66
-
67
- %(<nav#{p_id} class="pagy-bootstrap-combo-nav-js pagination" #{
68
- nav_aria_label_attr(pagy, nav_aria_label, nav_i18n_key)} #{
69
- pagy_data(pagy, :combo, pagy_url_for(pagy, PAGE_TOKEN)) }><div class="btn-group" role="group">#{
70
- if (p_prev = pagy.prev)
71
- link.call(p_prev, pagy_t('pagy.prev'), %(class="prev btn btn-primary" #{prev_aria_label_attr}))
72
- else
73
- %(<a role="link" class="prev btn btn-primary disabled" aria-disabled="true" #{
74
- prev_aria_label_attr}>#{pagy_t('pagy.prev')}</a>)
75
- end
76
- }<div class="pagy-combo-input btn btn-secondary" style="white-space: nowrap;">#{
77
- pagy_t 'pagy.combo_nav_js', page_input: input, count: p_page, pages: p_pages}</div>#{
78
- if (p_next = pagy.next)
79
- link.call(p_next, pagy_t('pagy.next'), %(class="next btn btn-primary" #{next_aria_label_attr}))
80
- else
81
- %(<a role="link" class="next btn btn-primary disabled" aria-disabled="true" #{
82
- next_aria_label_attr}>#{pagy_t 'pagy.next'}</a>)
83
- end
84
- }</div></nav>)
85
- end
86
-
87
- private
88
-
89
- def bootstrap_prev_html(pagy, link)
90
- if (p_prev = pagy.prev)
91
- %(<li class="page-item prev">#{link.call(p_prev, pagy_t('pagy.prev'), prev_aria_label_attr)}</li>)
92
- else
93
- %(<li class="page-item prev disabled"><a role="link" class="page-link" aria-disabled="true" #{
94
- prev_aria_label_attr}>#{pagy_t('pagy.prev')}</a></li>)
95
- end
96
- end
97
-
98
- def bootstrap_next_html(pagy, link)
99
- if (p_next = pagy.next)
100
- %(<li class="page-item next">#{link.call p_next, pagy_t('pagy.next'), next_aria_label_attr}</li>)
101
- else
102
- %(<li class="page-item next disabled"><a role="link" class="page-link" aria-disabled="true" #{
103
- next_aria_label_attr}>#{pagy_t('pagy.next')}</a></li>)
104
- end
105
- end
106
- end
107
- Frontend.prepend BootstrapExtra
108
- end