@foxy.io/elements 1.41.0 → 1.42.0-beta.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 (227) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  6. package/dist/cdn/foxy-api-browser.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  8. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-card.js +1 -1
  11. package/dist/cdn/foxy-attribute-form.js +1 -1
  12. package/dist/cdn/foxy-billing-address-card.js +1 -1
  13. package/dist/cdn/foxy-cancellation-form.js +1 -1
  14. package/dist/cdn/foxy-cart-card.js +1 -1
  15. package/dist/cdn/foxy-cart-form.js +2 -2
  16. package/dist/cdn/foxy-client-card.js +1 -1
  17. package/dist/cdn/foxy-client-form.js +1 -1
  18. package/dist/cdn/foxy-collection-page.js +1 -1
  19. package/dist/cdn/foxy-collection-pages.js +1 -1
  20. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  21. package/dist/cdn/foxy-coupon-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  25. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  26. package/dist/cdn/foxy-coupon-form.js +1 -1
  27. package/dist/cdn/foxy-custom-field-card.js +1 -1
  28. package/dist/cdn/foxy-custom-field-form.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +1 -1
  34. package/dist/cdn/foxy-customer.js +1 -1
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +6 -6
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  47. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  48. package/dist/cdn/foxy-form-dialog.js +1 -1
  49. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  53. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  54. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  55. package/dist/cdn/foxy-gift-card-form.js +1 -1
  56. package/dist/cdn/foxy-i18n-editor.js +1 -1
  57. package/dist/cdn/foxy-i18n.js +1 -1
  58. package/dist/cdn/foxy-integration-card.js +1 -1
  59. package/dist/cdn/foxy-integration-form.js +1 -1
  60. package/dist/cdn/foxy-item-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-card.js +1 -1
  62. package/dist/cdn/foxy-item-category-form.js +1 -1
  63. package/dist/cdn/foxy-item-form.js +1 -1
  64. package/dist/cdn/foxy-item-option-card.js +1 -1
  65. package/dist/cdn/foxy-item-option-form.js +1 -1
  66. package/dist/cdn/foxy-items-form.js +1 -1
  67. package/dist/cdn/foxy-native-integration-card.js +1 -1
  68. package/dist/cdn/foxy-native-integration-form.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-query-builder.js +1 -1
  82. package/dist/cdn/foxy-report-form.js +2 -2
  83. package/dist/cdn/foxy-reports-table.js +6 -6
  84. package/dist/cdn/foxy-shipment-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  89. package/dist/cdn/foxy-sign-in-form.js +1 -1
  90. package/dist/cdn/foxy-spinner.js +1 -1
  91. package/dist/cdn/foxy-store-card.js +1 -1
  92. package/dist/cdn/foxy-store-form.js +1 -1
  93. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  94. package/dist/cdn/foxy-subscription-card.js +1 -1
  95. package/dist/cdn/foxy-subscription-form.js +1 -1
  96. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  97. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  98. package/dist/cdn/foxy-table.js +1 -1
  99. package/dist/cdn/foxy-tax-card.js +1 -1
  100. package/dist/cdn/foxy-tax-form.js +1 -1
  101. package/dist/cdn/foxy-template-config-form.js +1 -1
  102. package/dist/cdn/foxy-template-form.js +1 -1
  103. package/dist/cdn/foxy-template-set-card.js +1 -1
  104. package/dist/cdn/foxy-template-set-form.js +1 -1
  105. package/dist/cdn/foxy-transaction-card.js +1 -1
  106. package/dist/cdn/foxy-transaction.js +1 -1
  107. package/dist/cdn/foxy-transactions-table.js +7 -7
  108. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  109. package/dist/cdn/foxy-user-card.js +1 -1
  110. package/dist/cdn/foxy-user-form.js +1 -1
  111. package/dist/cdn/foxy-user-invitation-card.js +1 -1
  112. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  113. package/dist/cdn/foxy-users-table.js +1 -1
  114. package/dist/cdn/foxy-webhook-card.js +1 -1
  115. package/dist/cdn/foxy-webhook-form.js +1 -1
  116. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  117. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  118. package/dist/cdn/shared-0643656a.js +1 -0
  119. package/dist/cdn/{shared-12ea5def.js → shared-0662adb7.js} +1 -1
  120. package/dist/cdn/{shared-58c0c5cc.js → shared-0995ae7c.js} +1 -1
  121. package/dist/cdn/{shared-29b0ef56.js → shared-127ec8a7.js} +1 -1
  122. package/dist/cdn/{shared-30829c7f.js → shared-16ae74b2.js} +1 -1
  123. package/dist/cdn/{shared-f7db49fe.js → shared-16d1018b.js} +1 -1
  124. package/dist/cdn/shared-182a87a3.js +1 -0
  125. package/dist/cdn/{shared-0179fbaa.js → shared-1b7e17c7.js} +1 -1
  126. package/dist/cdn/{shared-3c0dcb9e.js → shared-1ce5b073.js} +1 -1
  127. package/dist/cdn/{shared-7eefc244.js → shared-1f6366c0.js} +1 -1
  128. package/dist/cdn/{shared-5231970e.js → shared-20fb2969.js} +1 -1
  129. package/dist/cdn/{shared-8ae33bf4.js → shared-25167d28.js} +1 -1
  130. package/dist/cdn/{shared-d298bb95.js → shared-253e51f7.js} +1 -1
  131. package/dist/cdn/{shared-58f1f368.js → shared-292dcee0.js} +1 -1
  132. package/dist/cdn/{shared-cdaf66d3.js → shared-32883b02.js} +1 -1
  133. package/dist/cdn/{shared-7f14ea13.js → shared-3691287b.js} +2 -2
  134. package/dist/cdn/{shared-922db328.js → shared-38eb8858.js} +1 -1
  135. package/dist/cdn/{shared-0ae48c81.js → shared-42a4540f.js} +1 -1
  136. package/dist/cdn/{shared-535d1ec6.js → shared-42c91940.js} +1 -1
  137. package/dist/cdn/{shared-a477b90e.js → shared-49337d35.js} +1 -1
  138. package/dist/cdn/{shared-acbcad2e.js → shared-4ded48ee.js} +1 -1
  139. package/dist/cdn/{shared-c71fb90f.js → shared-4e309d01.js} +1 -1
  140. package/dist/cdn/{shared-65763e6f.js → shared-500b7eb7.js} +1 -1
  141. package/dist/cdn/{shared-3f381f99.js → shared-5714fc55.js} +1 -1
  142. package/dist/cdn/{shared-1cd9967e.js → shared-5c057c26.js} +1 -1
  143. package/dist/cdn/{shared-3c7e55e4.js → shared-6286efb1.js} +1 -1
  144. package/dist/cdn/{shared-499c03b8.js → shared-6332db39.js} +1 -1
  145. package/dist/cdn/{shared-b82e43e5.js → shared-63b647a8.js} +1 -1
  146. package/dist/cdn/{shared-2fe84d72.js → shared-68a5368a.js} +1 -1
  147. package/dist/cdn/{shared-e69c94bd.js → shared-6b3b8c63.js} +1 -1
  148. package/dist/cdn/{shared-ef4d09da.js → shared-6f1261fa.js} +1 -1
  149. package/dist/cdn/{shared-5c6a00e9.js → shared-70380f94.js} +1 -1
  150. package/dist/cdn/{shared-a146c6a5.js → shared-75e7361d.js} +1 -1
  151. package/dist/cdn/{shared-2931ccbe.js → shared-76cbea00.js} +1 -1
  152. package/dist/cdn/{shared-1f659198.js → shared-771431a9.js} +1 -1
  153. package/dist/cdn/{shared-14209e60.js → shared-79a6aa1a.js} +1 -1
  154. package/dist/cdn/{shared-619235ab.js → shared-7a2aaafa.js} +1 -1
  155. package/dist/cdn/shared-7a4ca3f1.js +1 -0
  156. package/dist/cdn/{shared-3ad093b5.js → shared-7b3aac7e.js} +1 -1
  157. package/dist/cdn/{shared-8697a27e.js → shared-864ea319.js} +1 -1
  158. package/dist/cdn/shared-8b891950.js +1 -0
  159. package/dist/cdn/{shared-174ae849.js → shared-91bf0fa2.js} +1 -1
  160. package/dist/cdn/{shared-a4a847e4.js → shared-92153a7f.js} +1 -1
  161. package/dist/cdn/{shared-44209364.js → shared-93c8789e.js} +1 -1
  162. package/dist/cdn/{shared-c19d73fe.js → shared-986d0f7f.js} +1 -1
  163. package/dist/cdn/{shared-504d2acb.js → shared-9a4d52dd.js} +1 -1
  164. package/dist/cdn/{shared-cfea6000.js → shared-a3a4c368.js} +1 -1
  165. package/dist/cdn/{shared-c003fbf3.js → shared-a4ca1c5d.js} +1 -1
  166. package/dist/cdn/{shared-dc383217.js → shared-aa1dfc6b.js} +1 -1
  167. package/dist/cdn/{shared-70bcd6ae.js → shared-ba4f2bca.js} +1 -1
  168. package/dist/cdn/{shared-69943b4f.js → shared-bc2eb9bb.js} +1 -1
  169. package/dist/cdn/{shared-6ce9d926.js → shared-bf5b2106.js} +1 -1
  170. package/dist/cdn/{shared-54031a26.js → shared-c365c1ae.js} +2 -2
  171. package/dist/cdn/{shared-379b6e13.js → shared-c92d72ba.js} +1 -1
  172. package/dist/cdn/shared-cc5e4c06.js +1 -0
  173. package/dist/cdn/{shared-62a913ef.js → shared-d2304d50.js} +1 -1
  174. package/dist/cdn/{shared-34cbd863.js → shared-d5f6483f.js} +1 -1
  175. package/dist/cdn/{shared-ed3fc85e.js → shared-d62dcad6.js} +1 -1
  176. package/dist/cdn/shared-d6f46d44.js +1 -0
  177. package/dist/cdn/{shared-58a50b35.js → shared-e4768909.js} +1 -1
  178. package/dist/cdn/{shared-1522e7b0.js → shared-e55e32dd.js} +3 -3
  179. package/dist/cdn/{shared-43c39c6f.js → shared-ee9ee09a.js} +1 -1
  180. package/dist/cdn/{shared-375c365e.js → shared-eed9b226.js} +1 -1
  181. package/dist/cdn/{shared-2a941373.js → shared-f15af5d1.js} +1 -1
  182. package/dist/cdn/{shared-5988dd30.js → shared-f28e46bf.js} +1 -1
  183. package/dist/cdn/{shared-fe56bcdb.js → shared-f9f64dee.js} +1 -1
  184. package/dist/cdn/translations/admin-subscription-form/en.json +64 -80
  185. package/dist/cdn/translations/api-browser/en.json +4 -5
  186. package/dist/cdn/translations/cart-form/en.json +52 -65
  187. package/dist/cdn/translations/coupon-code-form/en.json +4 -5
  188. package/dist/cdn/translations/coupon-form/en.json +16 -20
  189. package/dist/cdn/translations/customer/en.json +16 -20
  190. package/dist/cdn/translations/customer-portal/de.json +8 -10
  191. package/dist/cdn/translations/customer-portal/en.json +8 -10
  192. package/dist/cdn/translations/customer-portal/es.json +8 -10
  193. package/dist/cdn/translations/customer-portal/fr.json +8 -10
  194. package/dist/cdn/translations/customer-portal/nl.json +8 -10
  195. package/dist/cdn/translations/customer-portal/pl.json +8 -10
  196. package/dist/cdn/translations/customer-portal/sv.json +8 -10
  197. package/dist/cdn/translations/customer-portal/zh-HK.json +8 -10
  198. package/dist/cdn/translations/customer-portal-settings-form/en.json +8 -10
  199. package/dist/cdn/translations/experimental-add-to-cart-builder/en.json +16 -20
  200. package/dist/cdn/translations/gift-card-code-form/en.json +8 -10
  201. package/dist/cdn/translations/gift-card-form/en.json +20 -25
  202. package/dist/cdn/translations/item-category-form/en.json +8 -10
  203. package/dist/cdn/translations/item-form/en.json +20 -25
  204. package/dist/cdn/translations/native-integration-form/en.json +8 -10
  205. package/dist/cdn/translations/pagination/en.json +5 -6
  206. package/dist/cdn/translations/payment-method-card/en.json +4 -5
  207. package/dist/cdn/translations/store-shipping-method-form/en.json +16 -20
  208. package/dist/cdn/translations/subscription-form/en.json +12 -15
  209. package/dist/cdn/translations/tax-form/en.json +4 -5
  210. package/dist/cdn/translations/template-set-form/en.json +4 -5
  211. package/dist/cdn/translations/transaction/en.json +56 -70
  212. package/dist/cdn/translations/update-payment-method-form/en.json +4 -5
  213. package/dist/cdn/translations/webhook-form/en.json +8 -10
  214. package/dist/elements/public/Pagination/Pagination.d.ts +12 -5
  215. package/dist/elements/public/Pagination/Pagination.js +197 -76
  216. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  217. package/dist/elements/public/Pagination/index.d.ts +2 -2
  218. package/dist/elements/public/Pagination/index.js +2 -2
  219. package/dist/elements/public/Pagination/index.js.map +1 -1
  220. package/dist/mixins/themeable.js +22 -0
  221. package/dist/mixins/themeable.js.map +1 -1
  222. package/package.json +1 -1
  223. package/dist/cdn/shared-14177287.js +0 -1
  224. package/dist/cdn/shared-1d2c7978.js +0 -1
  225. package/dist/cdn/shared-58bb3dda.js +0 -1
  226. package/dist/cdn/shared-a0570012.js +0 -1
  227. package/dist/cdn/shared-f00ebf92.js +0 -1
@@ -60,11 +60,10 @@
60
60
  "delete_cancel": "Cancel",
61
61
  "pagination": {
62
62
  "create_button_text": "Add item +",
63
- "first": "First",
64
- "last": "Last",
65
- "next": "Next",
66
- "pagination": "{{from}}-{{to}} out of {{total}}",
67
- "previous": "Previous",
63
+ "page_number": "Page number:",
64
+ "per_page": "Per page:",
65
+ "jump_to": "Jump to:",
66
+ "jump": "Jump",
68
67
  "card": {
69
68
  "delete_button_text": "Remove",
70
69
  "daily": "Daily",
@@ -156,11 +155,10 @@
156
155
  "clear": "Clear",
157
156
  "pagination": {
158
157
  "search_button_text": "Filters",
159
- "first": "First",
160
- "last": "Last",
161
- "next": "Next",
162
- "pagination": "{{from}}-{{to}} out of {{total}}",
163
- "previous": "Previous",
158
+ "page_number": "Page number:",
159
+ "per_page": "Per page:",
160
+ "jump_to": "Jump to:",
161
+ "jump": "Jump",
164
162
  "card": {
165
163
  "spinner": {
166
164
  "loading_busy": "Loading",
@@ -304,11 +302,10 @@
304
302
  "discount-details": {
305
303
  "label": "Applied discounts",
306
304
  "pagination": {
307
- "first": "First",
308
- "last": "Last",
309
- "next": "Next",
310
- "pagination": "{{from}}-{{to}} out of {{total}}",
311
- "previous": "Previous",
305
+ "page_number": "Page number:",
306
+ "per_page": "Per page:",
307
+ "jump_to": "Jump to:",
308
+ "jump": "Jump",
312
309
  "card": {
313
310
  "spinner": {
314
311
  "loading_busy": "Loading",
@@ -321,11 +318,10 @@
321
318
  "coupon-details": {
322
319
  "label": "Applied coupons",
323
320
  "pagination": {
324
- "first": "First",
325
- "last": "Last",
326
- "next": "Next",
327
- "pagination": "{{from}}-{{to}} out of {{total}}",
328
- "previous": "Previous",
321
+ "page_number": "Page number:",
322
+ "per_page": "Per page:",
323
+ "jump_to": "Jump to:",
324
+ "jump": "Jump",
329
325
  "card": {
330
326
  "spinner": {
331
327
  "loading_busy": "Loading",
@@ -428,11 +424,10 @@
428
424
  "loading_error": "Unknown error"
429
425
  }
430
426
  },
431
- "first": "First",
432
- "last": "Last",
433
- "next": "Next",
434
- "pagination": "{{from}}-{{to}} out of {{total}}",
435
- "previous": "Previous"
427
+ "page_number": "Page number:",
428
+ "per_page": "Per page:",
429
+ "jump_to": "Jump to:",
430
+ "jump": "Jump"
436
431
  }
437
432
  },
438
433
  "item-options": {
@@ -537,11 +532,10 @@
537
532
  }
538
533
  },
539
534
  "create_button_text": "Add option +",
540
- "first": "First",
541
- "last": "Last",
542
- "next": "Next",
543
- "pagination": "{{from}}-{{to}} out of {{total}}",
544
- "previous": "Previous"
535
+ "page_number": "Page number:",
536
+ "per_page": "Per page:",
537
+ "jump_to": "Jump to:",
538
+ "jump": "Jump"
545
539
  }
546
540
  },
547
541
  "timestamps": {
@@ -652,11 +646,10 @@
652
646
  },
653
647
  "pagination": {
654
648
  "create_button_text": "Add custom field +",
655
- "first": "First",
656
- "last": "Last",
657
- "next": "Next",
658
- "pagination": "{{from}}-{{to}} out of {{total}}",
659
- "previous": "Previous",
649
+ "page_number": "Page number:",
650
+ "per_page": "Per page:",
651
+ "jump_to": "Jump to:",
652
+ "jump": "Jump",
660
653
  "card": {
661
654
  "delete_button_text": "Remove",
662
655
  "spinner": {
@@ -752,11 +745,10 @@
752
745
  },
753
746
  "pagination": {
754
747
  "create_button_text": "Add attribute +",
755
- "first": "First",
756
- "last": "Last",
757
- "next": "Next",
758
- "pagination": "{{from}}-{{to}} out of {{total}}",
759
- "previous": "Previous",
748
+ "page_number": "Page number:",
749
+ "per_page": "Per page:",
750
+ "jump_to": "Jump to:",
751
+ "jump": "Jump",
760
752
  "card": {
761
753
  "delete_button_text": "Remove",
762
754
  "spinner": {
@@ -786,11 +778,10 @@
786
778
  "statuses": {
787
779
  "label": "Runs",
788
780
  "pagination": {
789
- "first": "First",
790
- "last": "Last",
791
- "next": "Next",
792
- "pagination": "{{from}}-{{to}} out of {{total}}",
793
- "previous": "Previous",
781
+ "page_number": "Page number:",
782
+ "per_page": "Per page:",
783
+ "jump_to": "Jump to:",
784
+ "jump": "Jump",
794
785
  "card": {
795
786
  "status_initializing": "Initializing",
796
787
  "status_successful": "Successful",
@@ -808,11 +799,10 @@
808
799
  "logs": {
809
800
  "label": "Logs",
810
801
  "pagination": {
811
- "first": "First",
812
- "last": "Last",
813
- "next": "Next",
814
- "pagination": "{{from}}-{{to}} out of {{total}}",
815
- "previous": "Previous",
802
+ "page_number": "Page number:",
803
+ "per_page": "Per page:",
804
+ "jump_to": "Jump to:",
805
+ "jump": "Jump",
816
806
  "card": {
817
807
  "date": "{{ value, date }} at {{ value, time }}",
818
808
  "spinner": {
@@ -837,11 +827,10 @@
837
827
  "refeed_bulk_action_caption_busy": "Refeeding...",
838
828
  "refeed_bulk_action_notification_done": "Selected webhooks were sent successfully.",
839
829
  "refeed_bulk_action_notification_fail": "Failed to refeed selected webhooks.",
840
- "first": "First",
841
- "last": "Last",
842
- "next": "Next",
843
- "pagination": "{{from}}-{{to}} out of {{total}}",
844
- "previous": "Previous",
830
+ "page_number": "Page number:",
831
+ "per_page": "Per page:",
832
+ "jump_to": "Jump to:",
833
+ "jump": "Jump",
845
834
  "card": {
846
835
  "status_initializing": "Last run: {{ date_created, date }} at {{ date_created, time }} • Initializing",
847
836
  "status_successful": "Last run: {{ date_created, date }} at {{ date_created, time }} • Successful",
@@ -909,11 +898,10 @@
909
898
  "payments": {
910
899
  "label": "Payments",
911
900
  "pagination": {
912
- "first": "First",
913
- "last": "Last",
914
- "next": "Next",
915
- "pagination": "{{from}}-{{to}} out of {{total}}",
916
- "previous": "Previous",
901
+ "page_number": "Page number:",
902
+ "per_page": "Per page:",
903
+ "jump_to": "Jump to:",
904
+ "jump": "Jump",
917
905
  "card": {
918
906
  "code": "Code",
919
907
  "date": "{{value, date}}",
@@ -1638,11 +1626,10 @@
1638
1626
  }
1639
1627
  },
1640
1628
  "pagination": {
1641
- "first": "First",
1642
- "last": "Last",
1643
- "next": "Next",
1644
- "pagination": "{{from}}-{{to}} out of {{total}}",
1645
- "previous": "Previous",
1629
+ "page_number": "Page number:",
1630
+ "per_page": "Per page:",
1631
+ "jump_to": "Jump to:",
1632
+ "jump": "Jump",
1646
1633
  "card": {
1647
1634
  "full_address": "{{address1}} {{address2}} {{city}} {{region}} {{country}} {{postal_code}}",
1648
1635
  "full_name": "{{first_name}} {{last_name}}",
@@ -1657,11 +1644,10 @@
1657
1644
  "shipments": {
1658
1645
  "label": "Shipments",
1659
1646
  "pagination": {
1660
- "first": "First",
1661
- "last": "Last",
1662
- "next": "Next",
1663
- "pagination": "{{from}}-{{to}} out of {{total}}",
1664
- "previous": "Previous",
1647
+ "page_number": "Page number:",
1648
+ "per_page": "Per page:",
1649
+ "jump_to": "Jump to:",
1650
+ "jump": "Jump",
1665
1651
  "card": {
1666
1652
  "full_address": "{{ address1 }} {{ address2 }} {{ city }} {{ region }} {{ postal_code }}",
1667
1653
  "quantity": "Qty: {{ count }}",
@@ -23,11 +23,10 @@
23
23
  "clear": "Clear",
24
24
  "pagination": {
25
25
  "search_button_text": "Filters",
26
- "first": "First",
27
- "last": "Last",
28
- "next": "Next",
29
- "pagination": "{{from}}-{{to}} out of {{total}}",
30
- "previous": "Previous",
26
+ "page_number": "Page number:",
27
+ "per_page": "Per page:",
28
+ "jump_to": "Jump to:",
29
+ "jump": "Jump",
31
30
  "card": {
32
31
  "spinner": {
33
32
  "loading_busy": "Loading",
@@ -76,11 +76,10 @@
76
76
  "statuses": {
77
77
  "label": "Runs",
78
78
  "pagination": {
79
- "first": "First",
80
- "last": "Last",
81
- "next": "Next",
82
- "pagination": "{{from}}-{{to}} out of {{total}}",
83
- "previous": "Previous",
79
+ "page_number": "Page number:",
80
+ "per_page": "Per page:",
81
+ "jump_to": "Jump to:",
82
+ "jump": "Jump",
84
83
  "card": {
85
84
  "status_initializing": "Initializing",
86
85
  "status_successful": "Successful",
@@ -98,11 +97,10 @@
98
97
  "logs": {
99
98
  "label": "Logs",
100
99
  "pagination": {
101
- "first": "First",
102
- "last": "Last",
103
- "next": "Next",
104
- "pagination": "{{from}}-{{to}} out of {{total}}",
105
- "previous": "Previous",
100
+ "page_number": "Page number:",
101
+ "per_page": "Per page:",
102
+ "jump_to": "Jump to:",
103
+ "jump": "Jump",
106
104
  "card": {
107
105
  "date": "{{ value, date }} at {{ value, time }}",
108
106
  "spinner": {
@@ -1,10 +1,11 @@
1
- import { LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
1
+ import type { PropertyDeclarations, TemplateResult, CSSResultArray } from 'lit-element';
2
+ import { LitElement } from 'lit-element';
2
3
  declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
3
4
  inferredProperties: string[];
4
5
  } & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
6
  defaultNS: string;
6
7
  } & {
7
- styles: import("lit-element").CSSResultArray;
8
+ styles: CSSResultArray;
8
9
  } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost>;
9
10
  /**
10
11
  * Helper element that adds pagination controls to elements
@@ -23,16 +24,22 @@ declare const Base: typeof LitElement & import("lit-element").Constructor<import
23
24
  */
24
25
  export declare class Pagination extends Base {
25
26
  static get properties(): PropertyDeclarations;
27
+ static get styles(): CSSResultArray;
28
+ private readonly __handlePageElementUpdate;
29
+ private readonly __handleScrollAndResize;
26
30
  private __pageElement;
27
- private __rerender;
31
+ private __customPage;
28
32
  private __first;
29
- /** URL of the first page of the colletion. */
33
+ private __limit;
34
+ private __page;
35
+ /** URL of the first page of the collection. */
30
36
  get first(): string;
31
37
  set first(newValue: string);
32
38
  connectedCallback(): void;
33
39
  render(): TemplateResult;
40
+ updated(changes: Map<keyof this, unknown>): void;
34
41
  disconnectedCallback(): void;
35
- private __goTo;
42
+ private get __dialog();
36
43
  private __disconnectPageElement;
37
44
  private __connectPageElement;
38
45
  }
@@ -1,14 +1,13 @@
1
- import { LitElement, html } from 'lit-element';
1
+ import { LitElement, html, css } from 'lit-element';
2
2
  import { ConfigurableMixin } from "../../../mixins/configurable.js";
3
- import { NucleonElement } from "../NucleonElement/NucleonElement.js";
3
+ import { TranslatableMixin } from "../../../mixins/translatable.js";
4
4
  import { ResponsiveMixin } from "../../../mixins/responsive.js";
5
+ import { InferrableMixin } from "../../../mixins/inferrable.js";
5
6
  import { ThemeableMixin } from "../../../mixins/themeable.js";
6
- import { TranslatableMixin } from "../../../mixins/translatable.js";
7
- import { classMap } from "../../../utils/class-map.js";
7
+ import { NucleonElement } from "../NucleonElement/NucleonElement.js";
8
8
  import get from 'lodash-es/get';
9
- import { InferrableMixin } from "../../../mixins/inferrable.js";
10
9
  const NS = 'pagination';
11
- const Base = ResponsiveMixin(ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS))));
10
+ const Base = ConfigurableMixin(ThemeableMixin(TranslatableMixin(ResponsiveMixin(InferrableMixin(LitElement)), NS)));
12
11
  /**
13
12
  * Helper element that adds pagination controls to elements
14
13
  * representing Hypermedia API collection pages. Works with NucleonElement instances only.
@@ -27,125 +26,247 @@ const Base = ResponsiveMixin(ConfigurableMixin(ThemeableMixin(TranslatableMixin(
27
26
  export class Pagination extends Base {
28
27
  constructor() {
29
28
  super(...arguments);
29
+ this.__handlePageElementUpdate = () => this.requestUpdate();
30
+ this.__handleScrollAndResize = () => {
31
+ var _a;
32
+ (_a = this.renderRoot.querySelector('dialog')) === null || _a === void 0 ? void 0 : _a.close();
33
+ };
30
34
  this.__pageElement = null;
31
- this.__rerender = () => this.requestUpdate();
35
+ this.__customPage = 1;
32
36
  this.__first = '';
37
+ this.__limit = 20;
38
+ this.__page = 1;
33
39
  }
34
40
  static get properties() {
35
41
  return {
36
42
  ...super.properties,
37
43
  first: { type: String },
38
44
  __pageElement: { attribute: false },
45
+ __customPage: { attribute: false },
46
+ __first: { attribute: false },
47
+ __limit: { attribute: false },
48
+ __page: { attribute: false },
39
49
  };
40
50
  }
41
- /** URL of the first page of the colletion. */
51
+ static get styles() {
52
+ return [
53
+ super.styles,
54
+ css `dialog{
55
+ --position-bottom:translate(-100%, var(--lumo-space-m));
56
+ --position-top:translate(calc(-100% - 1px), calc(-100% - var(--lumo-space-m) - 1px));
57
+ border-radius:calc(var(--lumo-border-radius-m) + 1px);
58
+ }
59
+
60
+ dialog::backdrop{
61
+ background:transparent;
62
+ }
63
+ `,
64
+ ];
65
+ }
66
+ /** URL of the first page of the collection. */
42
67
  get first() {
43
68
  return this.__first;
44
69
  }
45
70
  set first(newValue) {
71
+ var _a;
46
72
  this.__first = newValue;
47
- if (this.__pageElement)
48
- this.__pageElement.href = newValue;
73
+ this.__page = 1;
74
+ try {
75
+ const url = new URL(newValue);
76
+ const limit = parseInt((_a = url.searchParams.get('limit')) !== null && _a !== void 0 ? _a : '');
77
+ this.__limit = Number.isNaN(limit) || limit < 1 || limit > 200 ? 20 : limit;
78
+ }
79
+ catch (_b) {
80
+ this.__limit = 20;
81
+ }
49
82
  }
50
83
  connectedCallback() {
51
84
  super.connectedCallback();
52
85
  this.__connectPageElement();
86
+ addEventListener('scroll', this.__handleScrollAndResize);
87
+ addEventListener('resize', this.__handleScrollAndResize);
53
88
  }
54
89
  render() {
55
90
  var _a;
56
91
  const data = (_a = this.__pageElement) === null || _a === void 0 ? void 0 : _a.data;
57
- const { disabled, lang, ns } = this;
58
92
  const returnedItemsValue = Number(get(data, 'returned_items'));
59
93
  const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;
60
94
  const totalValue = Number(get(data, 'total_items'));
61
95
  const total = Number.isNaN(totalValue) ? 0 : totalValue;
96
+ const limitOptions = [20, 50, 100, 150, 200];
97
+ const maxPageLinks = 5;
62
98
  const offsetValue = Number(get(data, 'offset'));
63
99
  const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;
64
- const canGoBack = !disabled && offset > 0;
65
- const canGoForth = !disabled && offset + returnedItems < total;
66
- const labelClass = 'sr-only sm-not-sr-only';
67
- const from = offset + 1;
68
- const to = offset + returnedItems;
100
+ const pages = total && this.__limit ? Math.ceil(total / this.__limit) : 0;
69
101
  return html `
70
102
  <slot @slotchange=${this.__connectPageElement}></slot>
71
103
 
72
104
  ${offset > 0 || offset + returnedItems < total
73
105
  ? html `
74
- <div
75
- class="mt-s grid gap-s items-center -mx-xs"
76
- style="grid-template-columns: 1fr auto 1fr"
77
- >
78
- <div class="flex items-center space-x-s">
79
- <vaadin-button
80
- data-testid="first"
81
- theme="contrast tertiary-inline"
82
- ?disabled=${!canGoBack}
83
- @click=${() => this.__goTo('first')}
84
- >
85
- <iron-icon class="icon-inline text-s" icon="icons:first-page"></iron-icon>
86
- <foxy-i18n class=${labelClass} lang=${lang} key="first" ns=${ns}></foxy-i18n>
87
- </vaadin-button>
106
+ <div class="flex items-center gap-xs mt-s">
107
+ <label class="text-tertiary" for="limit">
108
+ <foxy-i18n infer="" key="per_page"></foxy-i18n>
109
+ </label>
88
110
 
89
- <vaadin-button
90
- data-testid="prev"
91
- theme="contrast tertiary-inline"
92
- ?disabled=${!canGoBack}
93
- @click=${() => this.__goTo('prev')}
94
- >
95
- <iron-icon class="icon-inline text-s" icon="icons:chevron-left"></iron-icon>
96
- <foxy-i18n class=${labelClass} lang=${lang} key="previous" ns=${ns}></foxy-i18n>
97
- </vaadin-button>
98
- </div>
99
-
100
- <foxy-i18n
101
- options=${JSON.stringify({ total, from, to })}
102
- class=${classMap({
103
- 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,
104
- 'opacity-0': !data,
105
- })}
106
- lang=${lang}
107
- key="pagination"
108
- ns=${ns}
111
+ <select
112
+ class="mr-auto cursor-pointer appearance-none bg-transparent rounded-s font-medium px-xs transition-opacity hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50"
113
+ id="limit"
114
+ ?disabled=${this.disabled}
115
+ @change=${(evt) => {
116
+ this.__limit = parseInt(evt.currentTarget.value);
117
+ this.__page = 1;
118
+ }}
109
119
  >
110
- </foxy-i18n>
120
+ ${limitOptions.includes(this.__limit)
121
+ ? ''
122
+ : html `<option value=${this.__limit} selected>${this.__limit}</option>`}
123
+ ${limitOptions.map(option => html `
124
+ <option value=${option} ?selected=${option === this.__limit}>
125
+ ${option}
126
+ </option>
127
+ `)}
128
+ </select>
111
129
 
112
- <div class="flex items-center justify-end space-x-s">
113
- <vaadin-button
114
- data-testid="next"
115
- theme="contrast tertiary-inline"
116
- ?disabled=${!canGoForth}
117
- @click=${() => this.__goTo('next')}
118
- >
119
- <foxy-i18n class=${labelClass} lang=${lang} key="next" ns=${ns}></foxy-i18n>
120
- <iron-icon class="icon-inline text-s" icon="icons:chevron-right"></iron-icon>
121
- </vaadin-button>
130
+ <foxy-i18n class="text-tertiary sr-only sm-not-sr-only" infer="" key="jump_to">
131
+ </foxy-i18n>
122
132
 
123
- <vaadin-button
124
- data-testid="last"
125
- theme="contrast tertiary-inline"
126
- ?disabled=${!canGoForth}
127
- @click=${() => this.__goTo('last')}
128
- >
129
- <foxy-i18n class=${labelClass} lang=${lang} key="last" ns=${ns}></foxy-i18n>
130
- <iron-icon class="icon-inline text-s" icon="icons:last-page"></iron-icon>
131
- </vaadin-button>
132
- </div>
133
+ ${new Array(pages).fill('').map((_, pageIndex) => {
134
+ if (!(pageIndex < maxPageLinks + 1 || pageIndex === pages - 1))
135
+ return;
136
+ const isEllipsis = pageIndex === maxPageLinks && pages > maxPageLinks + 2;
137
+ const isCurrentPage = this.__page === pageIndex + 1;
138
+ return html `
139
+ <vaadin-button
140
+ data-testclass="page-link"
141
+ theme="tertiary-inline contrast"
142
+ class="relative px-xs ${pageIndex === pages - 1 ? '-mr-xs' : ''}"
143
+ ?disabled=${this.disabled || (isCurrentPage && !isEllipsis)}
144
+ @click=${(evt) => {
145
+ if (isEllipsis) {
146
+ const dialog = this.__dialog;
147
+ dialog.showModal();
148
+ const elementRight = this.getBoundingClientRect().right;
149
+ dialog.style.margin = `${evt.clientY}px auto auto ${elementRight}px`;
150
+ const dialogBottom = dialog.getBoundingClientRect().bottom;
151
+ const dialogPosition = dialogBottom > innerHeight ? 'top' : 'bottom';
152
+ dialog.style.transform = `var(--position-${dialogPosition})`;
153
+ }
154
+ else {
155
+ this.__page = pageIndex + 1;
156
+ }
157
+ }}
158
+ >
159
+ ${isEllipsis
160
+ ? this.__page > maxPageLinks && this.__page !== pages
161
+ ? html `
162
+ <span
163
+ class="inline-block transform origin-top scale-50"
164
+ style="--tw-translate-y: 0.1em;"
165
+ >
166
+ ${this.__page}
167
+ </span>
168
+ <span class="absolute inset-x-0 bottom-0">...</span>
169
+ `
170
+ : '...'
171
+ : pageIndex + 1}
172
+ </vaadin-button>
173
+ `;
174
+ })}
133
175
  </div>
134
176
  `
135
177
  : ''}
178
+
179
+ <dialog
180
+ class="p-0 shadow-m bg-transparent"
181
+ @click=${(evt) => {
182
+ const dialog = evt.currentTarget;
183
+ const dialogBox = dialog.getBoundingClientRect();
184
+ const clickedInsideDialog = dialogBox.top <= evt.clientY &&
185
+ evt.clientY <= dialogBox.top + dialogBox.height &&
186
+ dialogBox.left <= evt.clientX &&
187
+ evt.clientX <= dialogBox.left + dialogBox.width;
188
+ if (!clickedInsideDialog)
189
+ dialog.close();
190
+ }}
191
+ >
192
+ <foxy-internal-summary-control
193
+ helper-text=""
194
+ label=""
195
+ infer=""
196
+ class="bg-base rounded border border-base"
197
+ style="width: 18rem"
198
+ >
199
+ <foxy-internal-number-control
200
+ placeholder="1"
201
+ helper-text=""
202
+ layout="summary-item"
203
+ label=${this.t('page_number')}
204
+ infer=""
205
+ step="1"
206
+ min="1"
207
+ max=${pages}
208
+ .getValue=${() => this.__customPage}
209
+ .setValue=${(value) => (this.__customPage = value || 1)}
210
+ @keydown=${(evt) => {
211
+ var _a;
212
+ if (evt.key === 'Enter') {
213
+ this.__page = this.__customPage;
214
+ (_a = this.__dialog) === null || _a === void 0 ? void 0 : _a.close();
215
+ }
216
+ }}
217
+ >
218
+ </foxy-internal-number-control>
219
+ <div>
220
+ <vaadin-button
221
+ theme="tertiary-inline"
222
+ ?disabled=${this.disabled}
223
+ @click=${() => {
224
+ var _a;
225
+ this.__page = this.__customPage;
226
+ (_a = this.__dialog) === null || _a === void 0 ? void 0 : _a.close();
227
+ }}
228
+ >
229
+ <foxy-i18n infer="" key="jump"></foxy-i18n>
230
+ </vaadin-button>
231
+ </div>
232
+ </foxy-internal-summary-control>
233
+ </dialog>
136
234
  `;
137
235
  }
236
+ updated(changes) {
237
+ super.updated(changes);
238
+ const triggerProps = ['__first', '__limit', '__page'];
239
+ if (!triggerProps.some(prop => changes.has(prop)))
240
+ return;
241
+ try {
242
+ const url = new URL(this.__first);
243
+ const limit = this.__limit;
244
+ const offset = this.__limit * (this.__page - 1);
245
+ url.searchParams.delete('limit');
246
+ url.searchParams.delete('offset');
247
+ if (limit)
248
+ url.searchParams.set('limit', limit.toString());
249
+ if (offset)
250
+ url.searchParams.set('offset', offset.toString());
251
+ if (this.__pageElement)
252
+ this.__pageElement.href = url.toString();
253
+ }
254
+ catch (_a) {
255
+ //
256
+ }
257
+ }
138
258
  disconnectedCallback() {
139
259
  super.disconnectedCallback();
140
260
  this.__disconnectPageElement();
261
+ removeEventListener('scroll', this.__handleScrollAndResize);
262
+ removeEventListener('resize', this.__handleScrollAndResize);
141
263
  }
142
- __goTo(rel) {
143
- var _a;
144
- this.__pageElement.href = String(get((_a = this.__pageElement) === null || _a === void 0 ? void 0 : _a.data, `_links.${rel}.href`));
264
+ get __dialog() {
265
+ return this.renderRoot.querySelector('dialog');
145
266
  }
146
267
  __disconnectPageElement() {
147
268
  var _a;
148
- (_a = this.__pageElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('update', this.__rerender);
269
+ (_a = this.__pageElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('update', this.__handlePageElementUpdate);
149
270
  this.__pageElement = null;
150
271
  }
151
272
  __connectPageElement() {
@@ -156,7 +277,7 @@ export class Pagination extends Base {
156
277
  const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement);
157
278
  if (firstNucleonElement) {
158
279
  this.__pageElement = firstNucleonElement;
159
- this.__pageElement.addEventListener('update', this.__rerender);
280
+ this.__pageElement.addEventListener('update', this.__handlePageElementUpdate);
160
281
  this.__pageElement.href = this.first;
161
282
  }
162
283
  }