@foxy.io/elements 1.25.0-beta.1 → 1.25.0-beta.3

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 (327) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +85 -3
  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-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-billing-address-card.js +1 -0
  12. package/dist/cdn/foxy-cancellation-form.js +1 -1
  13. package/dist/cdn/foxy-cart-card.js +1 -1
  14. package/dist/cdn/foxy-cart-form.js +1 -1
  15. package/dist/cdn/foxy-client-card.js +1 -1
  16. package/dist/cdn/foxy-client-form.js +1 -1
  17. package/dist/cdn/foxy-collection-page.js +1 -1
  18. package/dist/cdn/foxy-collection-pages.js +1 -1
  19. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  20. package/dist/cdn/foxy-coupon-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  22. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  24. package/dist/cdn/foxy-coupon-form.js +1 -1
  25. package/dist/cdn/foxy-custom-field-card.js +1 -1
  26. package/dist/cdn/foxy-custom-field-form.js +1 -1
  27. package/dist/cdn/foxy-customer-api.js +1 -1
  28. package/dist/cdn/foxy-customer-card.js +1 -1
  29. package/dist/cdn/foxy-customer-form.js +1 -1
  30. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  31. package/dist/cdn/foxy-customer-portal.js +1 -1
  32. package/dist/cdn/foxy-customer.js +3 -3
  33. package/dist/cdn/foxy-customers-table.js +1 -1
  34. package/dist/cdn/foxy-discount-builder.js +1 -1
  35. package/dist/cdn/foxy-discount-card.js +1 -1
  36. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  37. package/dist/cdn/foxy-donation.js +1 -1
  38. package/dist/cdn/foxy-downloadable-card.js +1 -1
  39. package/dist/cdn/foxy-downloadable-form.js +1 -1
  40. package/dist/cdn/foxy-email-template-card.js +1 -1
  41. package/dist/cdn/foxy-email-template-form.js +1 -1
  42. package/dist/cdn/foxy-error-entry-card.js +1 -1
  43. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  44. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  45. package/dist/cdn/foxy-form-dialog.js +1 -1
  46. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  47. package/dist/cdn/foxy-gift-card-card.js +1 -1
  48. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  51. package/dist/cdn/foxy-gift-card-form.js +1 -1
  52. package/dist/cdn/foxy-i18n-editor.js +1 -1
  53. package/dist/cdn/foxy-i18n.js +1 -1
  54. package/dist/cdn/foxy-integration-card.js +1 -1
  55. package/dist/cdn/foxy-integration-form.js +1 -1
  56. package/dist/cdn/foxy-item-card.js +1 -1
  57. package/dist/cdn/foxy-item-category-card.js +1 -1
  58. package/dist/cdn/foxy-item-category-form.js +1 -1
  59. package/dist/cdn/foxy-item-form.js +179 -1
  60. package/dist/cdn/foxy-item-option-card.js +1 -1
  61. package/dist/cdn/foxy-item-option-form.js +1 -1
  62. package/dist/cdn/foxy-items-form.js +1 -1
  63. package/dist/cdn/foxy-native-integration-card.js +1 -1
  64. package/dist/cdn/foxy-native-integration-form.js +1 -1
  65. package/dist/cdn/foxy-nucleon-element.js +1 -1
  66. package/dist/cdn/foxy-pagination.js +1 -1
  67. package/dist/cdn/foxy-passkey-card.js +1 -1
  68. package/dist/cdn/foxy-passkey-form.js +1 -1
  69. package/dist/cdn/foxy-payment-card.js +1 -1
  70. package/dist/cdn/foxy-payment-method-card.js +1 -1
  71. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  72. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  73. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  75. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api.js +1 -1
  78. package/dist/cdn/foxy-query-builder.js +1 -1
  79. package/dist/cdn/foxy-report-form.js +1 -1
  80. package/dist/cdn/foxy-reports-table.js +1 -1
  81. package/dist/cdn/foxy-shipment-card.js +1 -14
  82. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  83. package/dist/cdn/foxy-sign-in-form.js +1 -1
  84. package/dist/cdn/foxy-spinner.js +1 -1
  85. package/dist/cdn/foxy-store-card.js +1 -1
  86. package/dist/cdn/foxy-store-form.js +1 -1
  87. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  88. package/dist/cdn/foxy-subscription-card.js +1 -1
  89. package/dist/cdn/foxy-subscription-form.js +3 -3
  90. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  91. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  92. package/dist/cdn/foxy-table.js +1 -1
  93. package/dist/cdn/foxy-tax-card.js +1 -1
  94. package/dist/cdn/foxy-tax-form.js +1 -1
  95. package/dist/cdn/foxy-template-config-form.js +1 -1
  96. package/dist/cdn/foxy-template-form.js +1 -1
  97. package/dist/cdn/foxy-template-set-card.js +1 -1
  98. package/dist/cdn/foxy-template-set-form.js +1 -1
  99. package/dist/cdn/foxy-transaction-card.js +1 -1
  100. package/dist/cdn/foxy-transaction.js +1 -1
  101. package/dist/cdn/foxy-transactions-table.js +7 -7
  102. package/dist/cdn/foxy-user-card.js +1 -1
  103. package/dist/cdn/foxy-user-form.js +1 -1
  104. package/dist/cdn/foxy-users-table.js +1 -1
  105. package/dist/cdn/foxy-webhook-card.js +1 -1
  106. package/dist/cdn/foxy-webhook-form.js +1 -1
  107. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  108. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  109. package/dist/cdn/shared-0037b9e6.js +1 -0
  110. package/dist/cdn/{shared-a52c3d8c.js → shared-02f8245a.js} +1 -1
  111. package/dist/cdn/{shared-8c681381.js → shared-06916671.js} +1 -1
  112. package/dist/cdn/{shared-35728235.js → shared-07e9d1fb.js} +1 -1
  113. package/dist/cdn/{shared-1313f293.js → shared-0961f769.js} +1 -1
  114. package/dist/cdn/{shared-53d66db2.js → shared-0ffe26d8.js} +3 -3
  115. package/dist/cdn/{shared-4c2e9064.js → shared-1522d76f.js} +1 -1
  116. package/dist/cdn/{shared-51a5af7e.js → shared-15dfa16d.js} +1 -1
  117. package/dist/cdn/{shared-800ee6c0.js → shared-250a399a.js} +1 -1
  118. package/dist/cdn/shared-25edf241.js +1 -0
  119. package/dist/cdn/{shared-7d933f9d.js → shared-264c82b8.js} +1 -1
  120. package/dist/cdn/{shared-4b20fc75.js → shared-293771ba.js} +1 -1
  121. package/dist/cdn/{shared-5d718eaf.js → shared-29e74661.js} +1 -1
  122. package/dist/cdn/{shared-870074ff.js → shared-2c92c192.js} +1 -1
  123. package/dist/cdn/{shared-fd96bcd1.js → shared-30cbf0a6.js} +1 -1
  124. package/dist/cdn/{shared-92de4f37.js → shared-320fadbf.js} +1 -1
  125. package/dist/cdn/{shared-d123bea6.js → shared-324665fd.js} +1 -1
  126. package/dist/cdn/{shared-8771fb61.js → shared-3bd99d11.js} +1 -1
  127. package/dist/cdn/{shared-e8a85228.js → shared-3d251e6f.js} +1 -1
  128. package/dist/cdn/{shared-71b3559f.js → shared-3d95605f.js} +3 -3
  129. package/dist/cdn/{shared-f1b36324.js → shared-3f3903d4.js} +1 -1
  130. package/dist/cdn/{shared-d01f42d0.js → shared-3fee360a.js} +1 -1
  131. package/dist/cdn/shared-4105aacf.js +1 -0
  132. package/dist/cdn/shared-43e2c3f6.js +1 -0
  133. package/dist/cdn/{shared-5742a841.js → shared-452e38da.js} +1 -1
  134. package/dist/cdn/shared-4761cbda.js +1 -0
  135. package/dist/cdn/{shared-732bee4b.js → shared-5291bdca.js} +1 -1
  136. package/dist/cdn/{shared-417ab233.js → shared-54cbd346.js} +1 -1
  137. package/dist/cdn/{shared-1dbad347.js → shared-5db2fec0.js} +1 -1
  138. package/dist/cdn/{shared-c00049b2.js → shared-5f1f0d8f.js} +1 -1
  139. package/dist/cdn/{shared-c320cfef.js → shared-61b1fd60.js} +1 -1
  140. package/dist/cdn/{shared-e2db3ab5.js → shared-63d11888.js} +1 -1
  141. package/dist/cdn/{shared-ca428891.js → shared-69c3549d.js} +1 -1
  142. package/dist/cdn/{shared-9b12aeac.js → shared-6a7f96c4.js} +1 -1
  143. package/dist/cdn/{shared-fe927c53.js → shared-6d0be1e4.js} +1 -1
  144. package/dist/cdn/{shared-6e704d83.js → shared-6ffa9f84.js} +1 -1
  145. package/dist/cdn/{shared-21293163.js → shared-745a575c.js} +1 -1
  146. package/dist/cdn/{shared-4c3cb511.js → shared-835cf735.js} +1 -1
  147. package/dist/cdn/{shared-e60dc924.js → shared-85712eed.js} +1 -1
  148. package/dist/cdn/shared-87142858.js +1 -0
  149. package/dist/cdn/{shared-9771ef0f.js → shared-87824001.js} +1 -1
  150. package/dist/cdn/{shared-4d555419.js → shared-87f55237.js} +1 -1
  151. package/dist/cdn/{shared-7b771301.js → shared-8d99b885.js} +1 -1
  152. package/dist/cdn/{shared-fc99076a.js → shared-92dd9964.js} +1 -1
  153. package/dist/cdn/{shared-fed6cd4d.js → shared-979e24ec.js} +1 -1
  154. package/dist/cdn/{shared-5d795aaf.js → shared-a1be9c27.js} +1 -1
  155. package/dist/cdn/{shared-f3b8de28.js → shared-a1d39ddd.js} +1 -1
  156. package/dist/cdn/{shared-b8963ec6.js → shared-a5a03f4f.js} +1 -1
  157. package/dist/cdn/{shared-1105e4b9.js → shared-a95067d6.js} +1 -1
  158. package/dist/cdn/{shared-131988fc.js → shared-b113467e.js} +1 -1
  159. package/dist/cdn/{shared-5cf7b194.js → shared-b23c903e.js} +1 -1
  160. package/dist/cdn/{shared-96215749.js → shared-b984ab7c.js} +1 -1
  161. package/dist/cdn/shared-bab2ea2c.js +1 -0
  162. package/dist/cdn/{shared-783f5705.js → shared-c43cd1fa.js} +1 -1
  163. package/dist/cdn/{shared-da5e32c1.js → shared-ceec93fa.js} +1 -1
  164. package/dist/cdn/{shared-112dbca7.js → shared-d1265ca0.js} +1 -1
  165. package/dist/cdn/{shared-2f082f50.js → shared-d600815d.js} +1 -1
  166. package/dist/cdn/{shared-4e05dfb4.js → shared-d8ca5c87.js} +1 -1
  167. package/dist/cdn/{shared-1a65fd20.js → shared-d9f4138b.js} +1 -1
  168. package/dist/cdn/{shared-3bcc07cd.js → shared-db306674.js} +1 -1
  169. package/dist/cdn/{shared-18672d26.js → shared-de8bf756.js} +2 -2
  170. package/dist/cdn/{shared-f241722a.js → shared-e8621807.js} +1 -1
  171. package/dist/cdn/shared-e9276306.js +1 -0
  172. package/dist/cdn/{shared-76e71481.js → shared-ea1ab750.js} +1 -1
  173. package/dist/cdn/{shared-702eae16.js → shared-eacc4539.js} +1 -1
  174. package/dist/cdn/{shared-e8a51c60.js → shared-eb116b3e.js} +1 -1
  175. package/dist/cdn/{shared-e3096241.js → shared-ec59505f.js} +1 -1
  176. package/dist/cdn/{shared-662c576b.js → shared-ecd5eb1b.js} +2 -2
  177. package/dist/cdn/{shared-093b64b4.js → shared-efbd62cb.js} +4 -4
  178. package/dist/cdn/{shared-e006e82c.js → shared-f1e743df.js} +1 -1
  179. package/dist/cdn/shared-f3cd4d07.js +1 -0
  180. package/dist/cdn/{shared-cb9cdc88.js → shared-f8d1abc9.js} +1 -1
  181. package/dist/cdn/{shared-fff7db77.js → shared-fad099e6.js} +1 -1
  182. package/dist/cdn/{shared-b7556b77.js → shared-ff18b2d1.js} +1 -1
  183. package/dist/cdn/translations/billing-address-card/en.json +9 -0
  184. package/dist/cdn/translations/cart-form/en.json +211 -293
  185. package/dist/cdn/translations/customer/en.json +142 -29
  186. package/dist/cdn/translations/customer-portal/en.json +13 -33
  187. package/dist/cdn/translations/item-card/en.json +12 -1
  188. package/dist/cdn/translations/item-form/en.json +199 -292
  189. package/dist/cdn/translations/native-integration-card/en.json +6 -2
  190. package/dist/cdn/translations/native-integration-form/en.json +31 -14
  191. package/dist/cdn/translations/payment-card/en.json +4 -0
  192. package/dist/cdn/translations/shipment-card/en.json +5 -446
  193. package/dist/cdn/translations/store-form/en.json +1 -1
  194. package/dist/cdn/translations/subscription-form/en.json +12 -1
  195. package/dist/cdn/translations/template-config-form/en.json +2 -2
  196. package/dist/cdn/translations/transaction/en.json +1103 -857
  197. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +2 -0
  198. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +23 -6
  199. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  200. package/dist/elements/public/AttributeCard/AttributeCard.js +1 -1
  201. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  202. package/dist/elements/public/BillingAddressCard/BillingAddressCard.d.ts +15 -0
  203. package/dist/elements/public/BillingAddressCard/BillingAddressCard.js +28 -0
  204. package/dist/elements/public/BillingAddressCard/BillingAddressCard.js.map +1 -0
  205. package/dist/elements/public/BillingAddressCard/index.d.ts +4 -0
  206. package/dist/elements/public/BillingAddressCard/index.js +6 -0
  207. package/dist/elements/public/BillingAddressCard/index.js.map +1 -0
  208. package/dist/elements/public/BillingAddressCard/types.d.ts +3 -0
  209. package/dist/elements/public/BillingAddressCard/types.js +2 -0
  210. package/dist/elements/public/BillingAddressCard/types.js.map +1 -0
  211. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  212. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  213. package/dist/elements/public/I18n/I18n.d.ts +1 -0
  214. package/dist/elements/public/I18n/I18n.js +1 -0
  215. package/dist/elements/public/I18n/I18n.js.map +1 -1
  216. package/dist/elements/public/ItemCard/ItemCard.d.ts +2 -0
  217. package/dist/elements/public/ItemCard/ItemCard.js +68 -62
  218. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  219. package/dist/elements/public/ItemForm/ItemForm.d.ts +64 -12
  220. package/dist/elements/public/ItemForm/ItemForm.js +146 -28
  221. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  222. package/dist/elements/public/ItemForm/index.d.ts +7 -7
  223. package/dist/elements/public/ItemForm/index.js +7 -7
  224. package/dist/elements/public/ItemForm/index.js.map +1 -1
  225. package/dist/elements/public/ItemForm/types.d.ts +62 -2
  226. package/dist/elements/public/ItemForm/types.js.map +1 -1
  227. package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js +17 -31
  228. package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js.map +1 -1
  229. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.d.ts +26 -24
  230. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js +137 -110
  231. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
  232. package/dist/elements/public/NativeIntegrationForm/defaults.d.ts +25 -19
  233. package/dist/elements/public/NativeIntegrationForm/defaults.js +25 -19
  234. package/dist/elements/public/NativeIntegrationForm/defaults.js.map +1 -1
  235. package/dist/elements/public/NativeIntegrationForm/types.d.ts +26 -22
  236. package/dist/elements/public/NativeIntegrationForm/types.js.map +1 -1
  237. package/dist/elements/public/Pagination/Pagination.js +65 -60
  238. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  239. package/dist/elements/public/PaymentCard/PaymentCard.d.ts +24 -36
  240. package/dist/elements/public/PaymentCard/PaymentCard.js +139 -158
  241. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  242. package/dist/elements/public/PaymentCard/index.d.ts +2 -2
  243. package/dist/elements/public/PaymentCard/index.js +2 -2
  244. package/dist/elements/public/PaymentCard/index.js.map +1 -1
  245. package/dist/elements/public/PaymentCard/types.d.ts +2 -16
  246. package/dist/elements/public/PaymentCard/types.js.map +1 -1
  247. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +9 -13
  248. package/dist/elements/public/ShipmentCard/ShipmentCard.js +90 -91
  249. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -1
  250. package/dist/elements/public/ShipmentCard/index.d.ts +2 -6
  251. package/dist/elements/public/ShipmentCard/index.js +2 -6
  252. package/dist/elements/public/ShipmentCard/index.js.map +1 -1
  253. package/dist/elements/public/ShipmentCard/types.d.ts +7 -2
  254. package/dist/elements/public/ShipmentCard/types.js.map +1 -1
  255. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  256. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  257. package/dist/elements/public/Transaction/Transaction.d.ts +11 -3
  258. package/dist/elements/public/Transaction/Transaction.js +238 -78
  259. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  260. package/dist/elements/public/Transaction/index.d.ts +4 -3
  261. package/dist/elements/public/Transaction/index.js +4 -3
  262. package/dist/elements/public/Transaction/index.js.map +1 -1
  263. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +1 -0
  264. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +17 -4
  265. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -1
  266. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.d.ts +7 -1
  267. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +81 -24
  268. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -1
  269. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.d.ts +3 -3
  270. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js +3 -3
  271. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js.map +1 -1
  272. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +1 -1
  273. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -1
  274. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +5 -3
  275. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +110 -61
  276. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  277. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.d.ts +1 -0
  278. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js +1 -0
  279. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js.map +1 -1
  280. package/dist/elements/public/Transaction/types.d.ts +14 -1
  281. package/dist/elements/public/Transaction/types.js.map +1 -1
  282. package/dist/elements/public/index.d.ts +1 -0
  283. package/dist/elements/public/index.defined.d.ts +1 -0
  284. package/dist/elements/public/index.defined.js +1 -0
  285. package/dist/elements/public/index.defined.js.map +1 -1
  286. package/dist/elements/public/index.js +1 -0
  287. package/dist/elements/public/index.js.map +1 -1
  288. package/dist/mixins/themeable.js +16 -0
  289. package/dist/mixins/themeable.js.map +1 -1
  290. package/package.json +1 -1
  291. package/dist/cdn/shared-074a74c3.js +0 -82
  292. package/dist/cdn/shared-26dea180.js +0 -1
  293. package/dist/cdn/shared-468de081.js +0 -1
  294. package/dist/cdn/shared-5e932eb5.js +0 -1
  295. package/dist/cdn/shared-8a9c64b2.js +0 -1
  296. package/dist/cdn/shared-e312da08.js +0 -1
  297. package/dist/cdn/shared-e79b5765.js +0 -1
  298. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +0 -5
  299. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +0 -17
  300. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +0 -1
  301. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +0 -6
  302. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +0 -8
  303. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +0 -1
  304. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +0 -5
  305. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +0 -25
  306. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +0 -1
  307. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +0 -5
  308. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +0 -7
  309. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +0 -1
  310. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +0 -5
  311. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +0 -52
  312. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +0 -1
  313. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +0 -6
  314. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +0 -8
  315. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +0 -1
  316. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +0 -5
  317. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +0 -26
  318. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +0 -1
  319. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +0 -5
  320. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +0 -7
  321. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +0 -1
  322. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +0 -5
  323. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +0 -72
  324. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +0 -1
  325. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +0 -8
  326. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +0 -10
  327. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +0 -1
@@ -57,77 +57,82 @@ export class Pagination extends Base {
57
57
  const { disabled, lang, ns } = this;
58
58
  const returnedItemsValue = Number(get(data, 'returned_items'));
59
59
  const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;
60
- const totalItemsValue = Number(get(data, 'total_items'));
61
- const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;
60
+ const totalValue = Number(get(data, 'total_items'));
61
+ const total = Number.isNaN(totalValue) ? 0 : totalValue;
62
62
  const offsetValue = Number(get(data, 'offset'));
63
63
  const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;
64
64
  const canGoBack = !disabled && offset > 0;
65
- const canGoForth = !disabled && offset + returnedItems < totalItems;
65
+ const canGoForth = !disabled && offset + returnedItems < total;
66
66
  const labelClass = 'sr-only sm-not-sr-only';
67
+ const from = offset + 1;
68
+ const to = offset + returnedItems;
67
69
  return html `
68
70
  <slot @slotchange=${this.__connectPageElement}></slot>
69
71
 
70
- <div class="grid gap-s items-center -mx-xs" style="grid-template-columns: 1fr auto 1fr">
71
- <div class="flex items-center space-x-s">
72
- <vaadin-button
73
- data-testid="first"
74
- theme="contrast tertiary-inline"
75
- ?disabled=${!canGoBack}
76
- @click=${() => this.__goTo('first')}
77
- >
78
- <iron-icon class="icon-inline text-s" icon="icons:first-page"></iron-icon>
79
- <foxy-i18n class=${labelClass} lang=${lang} key="first" ns=${ns}></foxy-i18n>
80
- </vaadin-button>
72
+ ${offset > 0 || offset + returnedItems < total
73
+ ? 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>
81
88
 
82
- <vaadin-button
83
- data-testid="prev"
84
- theme="contrast tertiary-inline"
85
- ?disabled=${!canGoBack}
86
- @click=${() => this.__goTo('prev')}
87
- >
88
- <iron-icon class="icon-inline text-s" icon="icons:chevron-left"></iron-icon>
89
- <foxy-i18n class=${labelClass} lang=${lang} key="previous" ns=${ns}></foxy-i18n>
90
- </vaadin-button>
91
- </div>
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>
92
99
 
93
- <foxy-i18n
94
- options=${JSON.stringify({
95
- total: totalItems,
96
- from: offset ? offset + 1 : 0,
97
- to: offset + returnedItems,
98
- })}
99
- class=${classMap({
100
- 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,
101
- 'opacity-0': !data,
102
- })}
103
- lang=${lang}
104
- key="pagination"
105
- ns=${ns}
106
- >
107
- </foxy-i18n>
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}
109
+ >
110
+ </foxy-i18n>
108
111
 
109
- <div class="flex items-center justify-end space-x-s">
110
- <vaadin-button
111
- data-testid="next"
112
- theme="contrast tertiary-inline"
113
- ?disabled=${!canGoForth}
114
- @click=${() => this.__goTo('next')}
115
- >
116
- <foxy-i18n class=${labelClass} lang=${lang} key="next" ns=${ns}></foxy-i18n>
117
- <iron-icon class="icon-inline text-s" icon="icons:chevron-right"></iron-icon>
118
- </vaadin-button>
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>
119
122
 
120
- <vaadin-button
121
- data-testid="last"
122
- theme="contrast tertiary-inline"
123
- ?disabled=${!canGoForth}
124
- @click=${() => this.__goTo('last')}
125
- >
126
- <foxy-i18n class=${labelClass} lang=${lang} key="last" ns=${ns}></foxy-i18n>
127
- <iron-icon class="icon-inline text-s" icon="icons:last-page"></iron-icon>
128
- </vaadin-button>
129
- </div>
130
- </div>
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
+ </div>
134
+ `
135
+ : ''}
131
136
  `;
132
137
  }
133
138
  disconnectedCallback() {
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid gap-s items-center -mx-xs\" style=\"grid-template-columns: 1fr auto 1fr\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalValue = Number(get(data, 'total_items'));\n const total = Number.isNaN(totalValue) ? 0 : totalValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < total;\n\n const labelClass = 'sr-only sm-not-sr-only';\n const from = offset + 1;\n const to = offset + returnedItems;\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n ${offset > 0 || offset + returnedItems < total\n ? html`\n <div\n class=\"mt-s grid gap-s items-center -mx-xs\"\n style=\"grid-template-columns: 1fr auto 1fr\"\n >\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({ total, from, to })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `\n : ''}\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
@@ -1,46 +1,34 @@
1
- import { Data, Templates } from './types';
2
- import { TemplateResult } from 'lit-html';
3
- import { NucleonElement } from '../NucleonElement/NucleonElement';
4
- declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
1
+ import type { PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import type { Data } from './types';
4
+ import { InternalCard } from '../../internal/InternalCard/InternalCard';
5
+ declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
6
  defaultNS: string;
6
- } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
7
- styles: import("lit-element").CSSResultArray;
8
7
  };
9
8
  /**
10
- * Basic card displaying a payment.
11
- *
12
- * Note: payment gateway names need to be loaded separately. You can obtain
13
- * them from `fx:property_helpers` using your own Backend API proxy or just hardcode the values
14
- * you need. Once you have the gateway names, call `I18n.setGateways(names)`.
15
- *
16
- * @slot title:before
17
- * @slot title:after
18
- *
19
- * @slot subtitle:before
20
- * @slot subtitle:after
21
- *
22
- * @slot card-info:before
23
- * @slot card-info:after
24
- *
25
- * @slot fraud-risk:before
26
- * @slot fraud-risk:after
27
- *
28
- * @slot processor-response:before
29
- * @slot processor-response:after
9
+ * Basic card displaying a payment resource (`fx:payment`).
30
10
  *
31
11
  * @element foxy-payment-card
32
12
  * @since 1.11.0
33
13
  */
34
14
  export declare class PaymentCard extends Base<Data> {
35
- templates: Templates;
36
- private __currencyDisplay;
37
- private __currency;
38
- render(): TemplateResult;
39
- protected _sendGet(): Promise<Data>;
40
- private __renderTitle;
41
- private __renderSubtitle;
42
- private __renderCardInfo;
43
- private __renderFraudRisk;
44
- private __renderProcessorResponse;
15
+ static get properties(): PropertyDeclarations;
16
+ /** URL of the `fx:hosted_payment_gateways` property helper resource. */
17
+ hostedPaymentGatewaysHelper: string | null;
18
+ /** URL of the `fx:payment_gateways` property helper resource. */
19
+ paymentGatewaysHelper: string | null;
20
+ private readonly __hostedPaymentGatewaysLoaderId;
21
+ private readonly __paymentGatewaysLoaderId;
22
+ private readonly __transactionLoaderId;
23
+ private readonly __storeLoaderId;
24
+ renderBody(): TemplateResult;
25
+ get isBodyReady(): boolean;
26
+ private get __hostedPaymentGatewaysLoader();
27
+ private get __paymentGatewaysLoader();
28
+ private get __transactionLoader();
29
+ private get __storeLoader();
30
+ private get __currencyDisplay();
31
+ private get __currencyCode();
32
+ private get __gatewayName();
45
33
  }
46
34
  export {};
@@ -1,32 +1,12 @@
1
1
  import * as logos from "../PaymentMethodCard/logos.js";
2
- import { html } from 'lit-html';
3
- import { ConfigurableMixin } from "../../../mixins/configurable.js";
4
- import { NucleonElement } from "../NucleonElement/NucleonElement.js";
5
- import { ThemeableMixin } from "../../../mixins/themeable.js";
6
2
  import { TranslatableMixin } from "../../../mixins/translatable.js";
7
- import { classMap } from "../../../utils/class-map.js";
8
- const Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'payment-card')));
3
+ import { InternalCard } from "../../internal/InternalCard/InternalCard.js";
4
+ import { ifDefined } from 'lit-html/directives/if-defined';
5
+ import { html } from 'lit-html';
6
+ const NS = 'payment-card';
7
+ const Base = TranslatableMixin(InternalCard, NS);
9
8
  /**
10
- * Basic card displaying a payment.
11
- *
12
- * Note: payment gateway names need to be loaded separately. You can obtain
13
- * them from `fx:property_helpers` using your own Backend API proxy or just hardcode the values
14
- * you need. Once you have the gateway names, call `I18n.setGateways(names)`.
15
- *
16
- * @slot title:before
17
- * @slot title:after
18
- *
19
- * @slot subtitle:before
20
- * @slot subtitle:after
21
- *
22
- * @slot card-info:before
23
- * @slot card-info:after
24
- *
25
- * @slot fraud-risk:before
26
- * @slot fraud-risk:after
27
- *
28
- * @slot processor-response:before
29
- * @slot processor-response:after
9
+ * Basic card displaying a payment resource (`fx:payment`).
30
10
  *
31
11
  * @element foxy-payment-card
32
12
  * @since 1.11.0
@@ -34,152 +14,153 @@ const Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement,
34
14
  export class PaymentCard extends Base {
35
15
  constructor() {
36
16
  super(...arguments);
37
- this.templates = {};
38
- this.__currencyDisplay = '';
39
- this.__currency = '';
17
+ /** URL of the `fx:hosted_payment_gateways` property helper resource. */
18
+ this.hostedPaymentGatewaysHelper = null;
19
+ /** URL of the `fx:payment_gateways` property helper resource. */
20
+ this.paymentGatewaysHelper = null;
21
+ this.__hostedPaymentGatewaysLoaderId = 'hostedPaymentGatewaysLoader';
22
+ this.__paymentGatewaysLoaderId = 'paymentGatewaysLoader';
23
+ this.__transactionLoaderId = 'transactionLoader';
24
+ this.__storeLoaderId = 'storeLoader';
40
25
  }
41
- render() {
42
- var _a, _b;
43
- const hidden = this.hiddenSelector;
44
- const isCardInfoHidden = hidden.matches('card-info', true);
45
- const isFraudRiskHidden = hidden.matches('fraud-risk', true);
26
+ static get properties() {
27
+ return {
28
+ ...super.properties,
29
+ hostedPaymentGatewaysHelper: { attribute: 'hosted-payment-gateways-helper' },
30
+ paymentGatewaysHelper: { attribute: 'payment-gateways-helper' },
31
+ };
32
+ }
33
+ renderBody() {
34
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
35
+ const data = this.data;
36
+ const amount = `${(_a = data === null || data === void 0 ? void 0 : data.amount) !== null && _a !== void 0 ? _a : ''} ${this.__currencyCode}`;
37
+ const amountOptions = { currencyDisplay: this.__currencyDisplay, amount };
38
+ const infoKeys = [
39
+ 'processor_response',
40
+ 'paypal_payer_id',
41
+ 'third_party_id',
42
+ 'purchase_order',
43
+ ];
44
+ const score = (_c = (_b = this.data) === null || _b === void 0 ? void 0 : _b.fraud_protection_score) !== null && _c !== void 0 ? _c : 0;
45
+ const scoreColor = score > 0 ? 'text-error' : 'text-success';
46
+ const scoreBackground = score > 0 ? 'bg-error-10' : 'bg-success-10';
47
+ const type = ((_d = data === null || data === void 0 ? void 0 : data.cc_type) !== null && _d !== void 0 ? _d : 'unknown').toLowerCase();
48
+ const year = (_e = data === null || data === void 0 ? void 0 : data.cc_exp_year) === null || _e === void 0 ? void 0 : _e.substring(2);
49
+ const month = data === null || data === void 0 ? void 0 : data.cc_exp_month;
50
+ const last4Digits = (_f = data === null || data === void 0 ? void 0 : data.cc_number_masked) === null || _f === void 0 ? void 0 : _f.replace(/x/gi, '');
46
51
  return html `
47
- <div
48
- aria-busy=${!this.data && this.in('busy')}
49
- aria-live="polite"
50
- class="relative text-body text-m font-lumo leading-m focus-outline-none"
52
+ <foxy-nucleon
53
+ infer=""
54
+ href=${ifDefined((_g = this.hostedPaymentGatewaysHelper) !== null && _g !== void 0 ? _g : undefined)}
55
+ id=${this.__hostedPaymentGatewaysLoaderId}
56
+ @update=${() => this.requestUpdate()}
51
57
  >
52
- <div
53
- class=${classMap({
54
- 'relative transition duration-250 ease-in-out': true,
55
- 'opacity-0 pointer-events-none': !this.data,
56
- })}
57
- >
58
- ${hidden.matches('title', true) ? '' : this.__renderTitle()}
59
- ${hidden.matches('subtitle', true) ? '' : this.__renderSubtitle()}
60
- ${isCardInfoHidden && isFraudRiskHidden
61
- ? ''
62
- : html `
63
- <div class="my-s flex space-x-s overflow-auto">
64
- ${isCardInfoHidden ? '' : this.__renderCardInfo()}
65
- ${isFraudRiskHidden ? '' : this.__renderFraudRisk()}
66
- </div>
67
- `}
68
- ${hidden.matches('processor-response', true) ? '' : this.__renderProcessorResponse()}
69
- </div>
58
+ </foxy-nucleon>
59
+
60
+ <foxy-nucleon
61
+ infer=""
62
+ href=${ifDefined((_h = this.paymentGatewaysHelper) !== null && _h !== void 0 ? _h : undefined)}
63
+ id=${this.__paymentGatewaysLoaderId}
64
+ @update=${() => this.requestUpdate()}
65
+ >
66
+ </foxy-nucleon>
70
67
 
71
- <div
72
- class=${classMap({
73
- 'transition duration-250 ease-in-out absolute inset-0 flex': true,
74
- 'opacity-0 pointer-events-none': !!this.data,
68
+ <foxy-nucleon
69
+ infer=""
70
+ href=${ifDefined(data === null || data === void 0 ? void 0 : data._links['fx:transaction'].href)}
71
+ id=${this.__transactionLoaderId}
72
+ @update=${() => this.requestUpdate()}
73
+ >
74
+ </foxy-nucleon>
75
+
76
+ <foxy-nucleon
77
+ infer=""
78
+ href=${ifDefined(data === null || data === void 0 ? void 0 : data._links['fx:store'].href)}
79
+ id=${this.__storeLoaderId}
80
+ @update=${() => this.requestUpdate()}
81
+ >
82
+ </foxy-nucleon>
83
+
84
+ <p class="leading-s">
85
+ <span class="block font-medium text-m" data-testid="line-1">
86
+ <foxy-i18n .options=${amountOptions} infer="" key="price"></foxy-i18n>
87
+ <span>&nbsp;&bull;&nbsp;</span>
88
+ <foxy-i18n .options=${{ value: data === null || data === void 0 ? void 0 : data.date_created }} infer="" key="date"></foxy-i18n>
89
+ </span>
90
+
91
+ <span class="block text-s text-secondary">
92
+ ${this.__gatewayName || html `<foxy-i18n infer="" key="unknown"></foxy-i18n>`}
93
+ </span>
94
+
95
+ ${infoKeys.map(key => {
96
+ if (!(data === null || data === void 0 ? void 0 : data[key]))
97
+ return;
98
+ const css = 'block text-s text-tertiary';
99
+ return html `<foxy-i18n class=${css} infer="" key=${key} .options=${data}></foxy-i18n>`;
75
100
  })}
76
- >
77
- <foxy-spinner
78
- data-testid="spinner"
79
- class="m-auto"
80
- state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}
81
- lang=${this.lang}
82
- ns="${this.ns} ${(_b = (_a = customElements.get('foxy-spinner')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
101
+
102
+ <span class="mt-s flex space-x-s overflow-auto">
103
+ ${month && year && last4Digits
104
+ ? html `
105
+ <span
106
+ class="truncate flex items-center h-xs rounded-s overflow-hidden bg-contrast-5"
107
+ data-testid="card-info"
108
+ >
109
+ <span class="h-xs">${(_j = logos[type]) !== null && _j !== void 0 ? _j : logos.unknown}</span>
110
+ <span class="font-medium px-s">•••• ${last4Digits} ${month}/${year}</span>
111
+ </span>
112
+ `
113
+ : ''}
114
+
115
+ <foxy-i18n
116
+ class="truncate flex font-medium h-xs items-center px-s rounded-s text-s ${scoreColor} ${scoreBackground}"
117
+ infer=""
118
+ key="fraud_risk"
119
+ .options=${{ score }}
83
120
  >
84
- </foxy-spinner>
85
- </div>
86
- </div>
121
+ </foxy-i18n>
122
+ </span>
123
+ </p>
87
124
  `;
88
125
  }
89
- async _sendGet() {
90
- const payment = await super._sendGet();
91
- const [transaction, store] = await Promise.all([
92
- super._fetch(payment._links['fx:transaction'].href),
93
- super._fetch(payment._links['fx:store'].href),
94
- ]);
95
- this.__currency = transaction.currency_code;
96
- this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';
97
- return payment;
126
+ get isBodyReady() {
127
+ if (!super.isBodyReady)
128
+ return false;
129
+ if (!this.__currencyCode)
130
+ return false;
131
+ if (!this.__currencyDisplay)
132
+ return false;
133
+ return !this.hostedPaymentGatewaysHelper || !this.paymentGatewaysHelper || !!this.__gatewayName;
98
134
  }
99
- __renderTitle() {
100
- const key = this.data ? `gateways.${this.data.gateway_type}` : '';
101
- const ns = `${this.ns} gateways`;
102
- return html `
103
- <div class="text-m flex text-secondary" data-testid="title">
104
- ${this.renderTemplateOrSlot('title:before')}
105
- <foxy-i18n lang=${this.lang} key=${key} ns=${ns}></foxy-i18n>&ZeroWidthSpace;
106
- ${this.renderTemplateOrSlot('title:after')}
107
- </div>
108
- `;
135
+ get __hostedPaymentGatewaysLoader() {
136
+ return this.renderRoot.querySelector(`#${this.__hostedPaymentGatewaysLoaderId}`);
109
137
  }
110
- __renderSubtitle() {
111
- var _a, _b, _c, _d;
112
- const amount = `${(_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : ''} ${this.__currency}`;
113
- const amountOptions = JSON.stringify({ amount, currencyDisplay: this.__currencyDisplay });
114
- const date = (_d = (_c = this.data) === null || _c === void 0 ? void 0 : _c.date_created) !== null && _d !== void 0 ? _d : '';
115
- const dateOptions = JSON.stringify({ value: date });
116
- const lang = this.lang;
117
- const ns = this.ns;
118
- return html `
119
- <div class="flex font-medium text-m" data-testid="subtitle">
120
- ${this.renderTemplateOrSlot('subtitle:before')}
121
-
122
- <foxy-i18n options=${amountOptions} lang=${lang} key="price" ns=${ns}></foxy-i18n>
123
- <span>&nbsp;&bull;&nbsp;</span>
124
- <foxy-i18n options=${dateOptions} lang=${lang} key="date" ns=${ns}></foxy-i18n>
125
-
126
- ${this.renderTemplateOrSlot('subtitle:after')}
127
- </div>
128
- `;
138
+ get __paymentGatewaysLoader() {
139
+ return this.renderRoot.querySelector(`#${this.__paymentGatewaysLoaderId}`);
129
140
  }
130
- __renderCardInfo() {
131
- var _a, _b, _c, _d;
132
- const data = this.data;
133
- const type = ((_a = data === null || data === void 0 ? void 0 : data.cc_type) !== null && _a !== void 0 ? _a : 'unknown').toLowerCase();
134
- const year = (_b = data === null || data === void 0 ? void 0 : data.cc_exp_year) === null || _b === void 0 ? void 0 : _b.substring(2);
135
- const month = data === null || data === void 0 ? void 0 : data.cc_exp_month;
136
- const last4Digits = (_c = data === null || data === void 0 ? void 0 : data.cc_number_masked) === null || _c === void 0 ? void 0 : _c.replace(/x/gi, '');
137
- if (!month || !year || !last4Digits)
138
- return;
139
- return html `
140
- <div class="flex" data-testid="card-info">
141
- ${this.renderTemplateOrSlot('card-info:before')}
142
-
143
- <div class="truncate flex items-center h-s rounded overflow-hidden bg-contrast-5">
144
- <div class="h-s">${(_d = logos[type]) !== null && _d !== void 0 ? _d : logos.unknown}</div>
145
- <div class="text-m font-medium px-s">•••• ${last4Digits} ${month}/${year}</div>
146
- </div>
147
-
148
- ${this.renderTemplateOrSlot('card-info:after')}
149
- </div>
150
- `;
141
+ get __transactionLoader() {
142
+ return this.renderRoot.querySelector(`#${this.__transactionLoaderId}`);
151
143
  }
152
- __renderFraudRisk() {
153
- var _a, _b;
154
- const score = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.fraud_protection_score) !== null && _b !== void 0 ? _b : 0;
155
- const color = score > 0 ? 'text-error' : 'text-success';
156
- const background = score > 0 ? 'bg-error-10' : 'bg-success-10';
157
- return html `
158
- <div class="flex" data-testid="fraud-risk">
159
- ${this.renderTemplateOrSlot('fraud-risk:before')}
160
-
161
- <foxy-i18n
162
- options=${JSON.stringify({ score })}
163
- class="truncate flex font-medium h-s items-center px-s rounded text-m ${color} ${background}"
164
- lang=${this.lang}
165
- key="fraud_risk"
166
- ns=${this.ns}
167
- >
168
- </foxy-i18n>
169
-
170
- ${this.renderTemplateOrSlot('fraud-risk:after')}
171
- </div>
172
- `;
144
+ get __storeLoader() {
145
+ return this.renderRoot.querySelector(`#${this.__storeLoaderId}`);
173
146
  }
174
- __renderProcessorResponse() {
147
+ get __currencyDisplay() {
175
148
  var _a;
176
- return html `
177
- <div class="text-m text-tertiary" data-testid="processor-response">
178
- ${this.renderTemplateOrSlot('processor-response:before')}
179
- ${(_a = this.data) === null || _a === void 0 ? void 0 : _a.processor_response}&ZeroWidthSpace;
180
- ${this.renderTemplateOrSlot('processor-response:after')}
181
- </div>
182
- `;
149
+ const store = (_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data;
150
+ return store ? (store.use_international_currency_symbol ? 'code' : 'symbol') : void 0;
151
+ }
152
+ get __currencyCode() {
153
+ var _a, _b;
154
+ return (_b = (_a = this.__transactionLoader) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.currency_code;
155
+ }
156
+ get __gatewayName() {
157
+ var _a, _b, _c, _d, _e, _f;
158
+ const type = (_a = this.data) === null || _a === void 0 ? void 0 : _a.gateway_type;
159
+ if (type) {
160
+ const gateway = (_c = (_b = this.__paymentGatewaysLoader) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.values[type];
161
+ const hostedGateway = (_e = (_d = this.__hostedPaymentGatewaysLoader) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.values[type];
162
+ return (_f = gateway === null || gateway === void 0 ? void 0 : gateway.name) !== null && _f !== void 0 ? _f : hostedGateway === null || hostedGateway === void 0 ? void 0 : hostedGateway.name;
163
+ }
183
164
  }
184
165
  }
185
166
  //# sourceMappingURL=PaymentCard.js.map