@foxy.io/elements 1.25.0-beta.2 → 1.25.0-beta.4

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 (345) 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 +2 -2
  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 +5 -5
  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 +2 -2
  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 +2 -96
  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 +95 -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-131988fc.js → shared-00c2793e.js} +1 -1
  111. package/dist/cdn/{shared-51a5af7e.js → shared-029816d7.js} +1 -1
  112. package/dist/cdn/{shared-c320cfef.js → shared-02bc0368.js} +1 -1
  113. package/dist/cdn/{shared-35728235.js → shared-07e9d1fb.js} +1 -1
  114. package/dist/cdn/{shared-4c2e9064.js → shared-1522d76f.js} +1 -1
  115. package/dist/cdn/{shared-4d555419.js → shared-174f37e9.js} +1 -1
  116. package/dist/cdn/{shared-f1b36324.js → shared-20ba4cdc.js} +1 -1
  117. package/dist/cdn/{shared-800ee6c0.js → shared-250a399a.js} +1 -1
  118. package/dist/cdn/{shared-8c681381.js → shared-268571df.js} +1 -1
  119. package/dist/cdn/{shared-4b20fc75.js → shared-293771ba.js} +1 -1
  120. package/dist/cdn/{shared-7b771301.js → shared-2b27e2e7.js} +1 -1
  121. package/dist/cdn/{shared-fed6cd4d.js → shared-2bdc99f4.js} +1 -1
  122. package/dist/cdn/{shared-71b3559f.js → shared-2c8c4b43.js} +1 -1
  123. package/dist/cdn/shared-2cf08dd4.js +1 -0
  124. package/dist/cdn/{shared-cb9cdc88.js → shared-2f09d4df.js} +4 -4
  125. package/dist/cdn/{shared-fd96bcd1.js → shared-30cbf0a6.js} +1 -1
  126. package/dist/cdn/{shared-417ab233.js → shared-30d00b64.js} +1 -1
  127. package/dist/cdn/{shared-1a65fd20.js → shared-32e736eb.js} +1 -1
  128. package/dist/cdn/{shared-e8a85228.js → shared-3d251e6f.js} +1 -1
  129. package/dist/cdn/shared-43e2c3f6.js +1 -0
  130. package/dist/cdn/{shared-f3b8de28.js → shared-43f449bb.js} +1 -1
  131. package/dist/cdn/{shared-9771ef0f.js → shared-4462dc70.js} +2 -2
  132. package/dist/cdn/{shared-a52c3d8c.js → shared-4aa4d980.js} +1 -1
  133. package/dist/cdn/{shared-e2db3ab5.js → shared-4c124efc.js} +7 -7
  134. package/dist/cdn/shared-4c650e5c.js +1 -0
  135. package/dist/cdn/{shared-96215749.js → shared-4e59fd48.js} +16 -16
  136. package/dist/cdn/{shared-ca428891.js → shared-54b0e48f.js} +1 -1
  137. package/dist/cdn/{shared-662c576b.js → shared-5fa697c4.js} +2 -2
  138. package/dist/cdn/shared-61ade33e.js +6 -0
  139. package/dist/cdn/{shared-9b12aeac.js → shared-6a7f96c4.js} +1 -1
  140. package/dist/cdn/{shared-8771fb61.js → shared-6a9ae42e.js} +1 -1
  141. package/dist/cdn/{shared-1105e4b9.js → shared-76400719.js} +1 -1
  142. package/dist/cdn/{shared-da5e32c1.js → shared-7dd17943.js} +1 -1
  143. package/dist/cdn/{shared-76e71481.js → shared-7deff07c.js} +1 -1
  144. package/dist/cdn/{shared-fff7db77.js → shared-7e1953f5.js} +1 -1
  145. package/dist/cdn/shared-8201d0b5.js +1 -0
  146. package/dist/cdn/{shared-5d718eaf.js → shared-8952aeac.js} +1 -1
  147. package/dist/cdn/{shared-92de4f37.js → shared-896982f9.js} +1 -1
  148. package/dist/cdn/{shared-b8963ec6.js → shared-8d8bed82.js} +1 -1
  149. package/dist/cdn/{shared-fc99076a.js → shared-99c0ae04.js} +1 -1
  150. package/dist/cdn/{shared-6e704d83.js → shared-9c08cfab.js} +1 -1
  151. package/dist/cdn/{shared-53d66db2.js → shared-9df8f842.js} +3 -3
  152. package/dist/cdn/{shared-1313f293.js → shared-a8dc23f1.js} +1 -1
  153. package/dist/cdn/{shared-d01f42d0.js → shared-ac7c5a5e.js} +14 -14
  154. package/dist/cdn/{shared-1dbad347.js → shared-ad34b6db.js} +1 -1
  155. package/dist/cdn/{shared-5d795aaf.js → shared-b1b8ea67.js} +1 -1
  156. package/dist/cdn/{shared-5cf7b194.js → shared-b23c903e.js} +1 -1
  157. package/dist/cdn/{shared-e60dc924.js → shared-b509bc2c.js} +1 -1
  158. package/dist/cdn/shared-bab2ea2c.js +1 -0
  159. package/dist/cdn/{shared-18672d26.js → shared-bc0d8d01.js} +2 -2
  160. package/dist/cdn/shared-be7bfbb0.js +1 -0
  161. package/dist/cdn/{shared-21293163.js → shared-bed7aae1.js} +1 -1
  162. package/dist/cdn/{shared-732bee4b.js → shared-c7b3d22b.js} +3 -3
  163. package/dist/cdn/{shared-7d933f9d.js → shared-c9ba1b64.js} +3 -3
  164. package/dist/cdn/{shared-783f5705.js → shared-ca4c5f0f.js} +1 -1
  165. package/dist/cdn/{shared-093b64b4.js → shared-cdd2358f.js} +1 -1
  166. package/dist/cdn/{shared-4e05dfb4.js → shared-d21fa1a6.js} +1 -1
  167. package/dist/cdn/{shared-4c3cb511.js → shared-d57fac94.js} +1 -1
  168. package/dist/cdn/{shared-3bcc07cd.js → shared-db306674.js} +1 -1
  169. package/dist/cdn/{shared-2f082f50.js → shared-dbadd9cf.js} +1 -1
  170. package/dist/cdn/{shared-5742a841.js → shared-e39807f8.js} +1 -1
  171. package/dist/cdn/shared-e83f2983.js +1 -0
  172. package/dist/cdn/{shared-f241722a.js → shared-e8621807.js} +1 -1
  173. package/dist/cdn/{shared-112dbca7.js → shared-e91453df.js} +1 -1
  174. package/dist/cdn/{shared-c00049b2.js → shared-ea527e98.js} +1 -1
  175. package/dist/cdn/{shared-e8a51c60.js → shared-eb116b3e.js} +1 -1
  176. package/dist/cdn/{shared-e006e82c.js → shared-f1e743df.js} +1 -1
  177. package/dist/cdn/shared-f9a3d1ff.js +6 -0
  178. package/dist/cdn/{shared-d123bea6.js → shared-fa4f6cd3.js} +1 -1
  179. package/dist/cdn/shared-fc15a882.js +1 -0
  180. package/dist/cdn/{shared-b7556b77.js → shared-ff18b2d1.js} +1 -1
  181. package/dist/cdn/{shared-870074ff.js → shared-ff8ca16b.js} +1 -1
  182. package/dist/cdn/{shared-fe927c53.js → shared-ff9791cf.js} +1 -1
  183. package/dist/cdn/translations/billing-address-card/en.json +9 -0
  184. package/dist/cdn/translations/cart-form/en.json +218 -299
  185. package/dist/cdn/translations/customer/en.json +151 -29
  186. package/dist/cdn/translations/customer-portal/en.json +35 -46
  187. package/dist/cdn/translations/item-card/en.json +13 -1
  188. package/dist/cdn/translations/item-form/en.json +201 -294
  189. package/dist/cdn/translations/native-integration-card/en.json +6 -2
  190. package/dist/cdn/translations/native-integration-form/en.json +17 -1
  191. package/dist/cdn/translations/payment-card/en.json +4 -0
  192. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +2 -2
  193. package/dist/cdn/translations/shipment-card/en.json +6 -446
  194. package/dist/cdn/translations/store-form/en.json +1 -1
  195. package/dist/cdn/translations/subscription-form/en.json +35 -15
  196. package/dist/cdn/translations/template-config-form/en.json +2 -2
  197. package/dist/cdn/translations/transaction/en.json +1104 -857
  198. package/dist/cdn/translations/transaction-card/en.json +22 -22
  199. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +2 -0
  200. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +43 -21
  201. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  202. package/dist/elements/internal/InternalControl/InternalControl.js +2 -1
  203. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  204. package/dist/elements/private/Dialog/Dialog.js +7 -1
  205. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  206. package/dist/elements/public/AttributeCard/AttributeCard.js +1 -1
  207. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  208. package/dist/elements/public/BillingAddressCard/BillingAddressCard.d.ts +15 -0
  209. package/dist/elements/public/BillingAddressCard/BillingAddressCard.js +28 -0
  210. package/dist/elements/public/BillingAddressCard/BillingAddressCard.js.map +1 -0
  211. package/dist/elements/public/BillingAddressCard/index.d.ts +4 -0
  212. package/dist/elements/public/BillingAddressCard/index.js +6 -0
  213. package/dist/elements/public/BillingAddressCard/index.js.map +1 -0
  214. package/dist/elements/public/BillingAddressCard/types.d.ts +3 -0
  215. package/dist/elements/public/BillingAddressCard/types.js +2 -0
  216. package/dist/elements/public/BillingAddressCard/types.js.map +1 -0
  217. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  218. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  219. package/dist/elements/public/I18n/I18n.d.ts +1 -0
  220. package/dist/elements/public/I18n/I18n.js +1 -0
  221. package/dist/elements/public/I18n/I18n.js.map +1 -1
  222. package/dist/elements/public/ItemCard/ItemCard.d.ts +2 -0
  223. package/dist/elements/public/ItemCard/ItemCard.js +70 -62
  224. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  225. package/dist/elements/public/ItemForm/ItemForm.d.ts +64 -12
  226. package/dist/elements/public/ItemForm/ItemForm.js +146 -28
  227. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  228. package/dist/elements/public/ItemForm/index.d.ts +7 -7
  229. package/dist/elements/public/ItemForm/index.js +7 -7
  230. package/dist/elements/public/ItemForm/index.js.map +1 -1
  231. package/dist/elements/public/ItemForm/types.d.ts +62 -2
  232. package/dist/elements/public/ItemForm/types.js.map +1 -1
  233. package/dist/elements/public/ItemsForm/private/Item.js +1 -0
  234. package/dist/elements/public/ItemsForm/private/Item.js.map +1 -1
  235. package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js +12 -10
  236. package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js.map +1 -1
  237. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.d.ts +2 -0
  238. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js +41 -8
  239. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
  240. package/dist/elements/public/NativeIntegrationForm/defaults.d.ts +7 -1
  241. package/dist/elements/public/NativeIntegrationForm/defaults.js +7 -1
  242. package/dist/elements/public/NativeIntegrationForm/defaults.js.map +1 -1
  243. package/dist/elements/public/NativeIntegrationForm/types.d.ts +6 -2
  244. package/dist/elements/public/NativeIntegrationForm/types.js.map +1 -1
  245. package/dist/elements/public/Pagination/Pagination.js +65 -60
  246. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  247. package/dist/elements/public/PaymentCard/PaymentCard.d.ts +24 -36
  248. package/dist/elements/public/PaymentCard/PaymentCard.js +139 -158
  249. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  250. package/dist/elements/public/PaymentCard/index.d.ts +2 -2
  251. package/dist/elements/public/PaymentCard/index.js +2 -2
  252. package/dist/elements/public/PaymentCard/index.js.map +1 -1
  253. package/dist/elements/public/PaymentCard/types.d.ts +2 -16
  254. package/dist/elements/public/PaymentCard/types.js.map +1 -1
  255. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +9 -13
  256. package/dist/elements/public/ShipmentCard/ShipmentCard.js +93 -91
  257. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -1
  258. package/dist/elements/public/ShipmentCard/index.d.ts +2 -6
  259. package/dist/elements/public/ShipmentCard/index.js +2 -6
  260. package/dist/elements/public/ShipmentCard/index.js.map +1 -1
  261. package/dist/elements/public/ShipmentCard/types.d.ts +7 -2
  262. package/dist/elements/public/ShipmentCard/types.js.map +1 -1
  263. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  264. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  265. package/dist/elements/public/Transaction/Transaction.d.ts +12 -5
  266. package/dist/elements/public/Transaction/Transaction.js +239 -77
  267. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  268. package/dist/elements/public/Transaction/index.d.ts +4 -3
  269. package/dist/elements/public/Transaction/index.js +4 -3
  270. package/dist/elements/public/Transaction/index.js.map +1 -1
  271. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +1 -0
  272. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +17 -4
  273. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -1
  274. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.d.ts +7 -1
  275. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +81 -24
  276. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -1
  277. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.d.ts +3 -3
  278. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js +3 -3
  279. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js.map +1 -1
  280. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +1 -1
  281. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -1
  282. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +5 -3
  283. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +110 -61
  284. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  285. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.d.ts +1 -0
  286. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js +1 -0
  287. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js.map +1 -1
  288. package/dist/elements/public/Transaction/types.d.ts +15 -1
  289. package/dist/elements/public/Transaction/types.js.map +1 -1
  290. package/dist/elements/public/TransactionCard/TransactionCard.d.ts +8 -10
  291. package/dist/elements/public/TransactionCard/TransactionCard.js +71 -51
  292. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  293. package/dist/elements/public/TransactionCard/index.d.ts +2 -1
  294. package/dist/elements/public/TransactionCard/index.js +2 -1
  295. package/dist/elements/public/TransactionCard/index.js.map +1 -1
  296. package/dist/elements/public/TransactionCard/types.d.ts +8 -2
  297. package/dist/elements/public/TransactionCard/types.js.map +1 -1
  298. package/dist/elements/public/index.d.ts +1 -0
  299. package/dist/elements/public/index.defined.d.ts +1 -0
  300. package/dist/elements/public/index.defined.js +1 -0
  301. package/dist/elements/public/index.defined.js.map +1 -1
  302. package/dist/elements/public/index.js +1 -0
  303. package/dist/elements/public/index.js.map +1 -1
  304. package/dist/mixins/themeable.js +20 -0
  305. package/dist/mixins/themeable.js.map +1 -1
  306. package/package.json +1 -1
  307. package/dist/cdn/shared-074a74c3.js +0 -82
  308. package/dist/cdn/shared-26dea180.js +0 -1
  309. package/dist/cdn/shared-468de081.js +0 -1
  310. package/dist/cdn/shared-5e932eb5.js +0 -1
  311. package/dist/cdn/shared-702eae16.js +0 -1
  312. package/dist/cdn/shared-8a9c64b2.js +0 -1
  313. package/dist/cdn/shared-e3096241.js +0 -12
  314. package/dist/cdn/shared-e312da08.js +0 -1
  315. package/dist/cdn/shared-e79b5765.js +0 -1
  316. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +0 -5
  317. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +0 -17
  318. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +0 -1
  319. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +0 -6
  320. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +0 -8
  321. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +0 -1
  322. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +0 -5
  323. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +0 -25
  324. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +0 -1
  325. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +0 -5
  326. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +0 -7
  327. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +0 -1
  328. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +0 -5
  329. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +0 -52
  330. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +0 -1
  331. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +0 -6
  332. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +0 -8
  333. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +0 -1
  334. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +0 -5
  335. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +0 -26
  336. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +0 -1
  337. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +0 -5
  338. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +0 -7
  339. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +0 -1
  340. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +0 -5
  341. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +0 -72
  342. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +0 -1
  343. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +0 -8
  344. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +0 -10
  345. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +0 -1
@@ -1,36 +1,93 @@
1
- import { html } from 'lit-html';
2
- import { ifDefined } from 'lit-html/directives/if-defined';
3
1
  import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { getResourceId } from '@foxy.io/sdk/core';
3
+ import { ifDefined } from 'lit-html/directives/if-defined';
4
+ import { html, svg } from 'lit-html';
5
+ import { classMap } from "../../../../../utils/class-map.js";
4
6
  export class InternalTransactionCustomerControl extends InternalControl {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.__copyEmailState = 'idle';
10
+ this.__copyIdState = 'idle';
11
+ }
12
+ static get properties() {
13
+ return {
14
+ ...super.properties,
15
+ __copyEmailState: { attribute: false },
16
+ __copyIdState: { attribute: false },
17
+ };
18
+ }
5
19
  renderControl() {
6
20
  var _a, _b, _c, _d;
21
+ const host = this.nucleon;
22
+ const customerHref = (_a = host === null || host === void 0 ? void 0 : host.data) === null || _a === void 0 ? void 0 : _a._links['fx:customer'].href;
23
+ const customerPageHref = customerHref ? (_b = host === null || host === void 0 ? void 0 : host.getCustomerPageHref) === null || _b === void 0 ? void 0 : _b.call(host, customerHref) : void 0;
7
24
  return html `
8
- <foxy-internal-details summary="customer" infer="" open>
9
- <foxy-form-dialog
10
- header="header"
11
- infer="dialog"
12
- form="foxy-customer"
13
- href=${ifDefined((_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._links['fx:customer'].href)}
14
- id="dialog"
25
+ <foxy-i18n infer="" class="block text-s font-medium leading-xs mb-xs" key="label">
26
+ </foxy-i18n>
27
+
28
+ <foxy-swipe-actions>
29
+ <a
30
+ class=${classMap({
31
+ 'block ring-inset rounded transition-colors': true,
32
+ 'ring-1 ring-contrast-10': !customerPageHref,
33
+ 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !!customerPageHref,
34
+ 'focus-outline-none focus-ring-2 focus-ring-primary-50': !!customerPageHref,
35
+ })}
36
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
37
+ href=${ifDefined(customerPageHref)}
15
38
  >
16
- </foxy-form-dialog>
39
+ <foxy-customer-card infer="" href=${ifDefined(customerHref)}></foxy-customer-card>
40
+ </a>
17
41
 
18
- <button
19
- class="w-full text-left block rounded-b-l transition-colors hover-bg-contrast-5 focus-outline-none focus-ring-2 focus-ring-primary-50"
20
- @click=${(evt) => {
21
- const dialog = this.renderRoot.querySelector('#dialog');
22
- dialog.show(evt.currentTarget);
23
- }}
42
+ <div class="h-full grid grid-cols-2 gap-s ml-s" slot="action">
43
+ ${this.__renderCopyAction(svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1.2rem; height: 1.2rem"><path fill-rule="evenodd" d="M9.493 2.852a.75.75 0 0 0-1.486-.204L7.545 6H4.198a.75.75 0 0 0 0 1.5h3.14l-.69 5H3.302a.75.75 0 0 0 0 1.5h3.14l-.435 3.148a.75.75 0 0 0 1.486.204L7.955 14h2.986l-.434 3.148a.75.75 0 0 0 1.486.204L12.456 14h3.346a.75.75 0 0 0 0-1.5h-3.14l.69-5h3.346a.75.75 0 0 0 0-1.5h-3.14l.435-3.148a.75.75 0 0 0-1.486-.204L12.045 6H9.059l.434-3.148ZM8.852 7.5l-.69 5h2.986l.69-5H8.852Z" clip-rule="evenodd" /></svg>`, 'copy_id_caption', '__copyIdState', customerHref ? String(getResourceId(customerHref)) : '')}
44
+ ${this.__renderCopyAction(svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1.2rem; height: 1.2rem"><path fill-rule="evenodd" d="M5.404 14.596A6.5 6.5 0 1 1 16.5 10a1.25 1.25 0 0 1-2.5 0 4 4 0 1 0-.571 2.06A2.75 2.75 0 0 0 18 10a8 8 0 1 0-2.343 5.657.75.75 0 0 0-1.06-1.06 6.5 6.5 0 0 1-9.193 0ZM10 7.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z" clip-rule="evenodd" /></svg>`, 'copy_email_caption', '__copyEmailState', (_d = (_c = host === null || host === void 0 ? void 0 : host.data) === null || _c === void 0 ? void 0 : _c.customer_email) !== null && _d !== void 0 ? _d : '')}
45
+ </div>
46
+ </foxy-swipe-actions>
47
+ `;
48
+ }
49
+ __renderCopyAction(icon, caption, stateKey, textToCopy) {
50
+ const state = this[stateKey];
51
+ const spinnerState = state === 'fail' ? 'error' : state === 'done' ? 'end' : 'busy';
52
+ return html `
53
+ <button
54
+ class="relative transition-colors bg-contrast-5 text-body hover-bg-contrast-10 rounded h-full py-0 px-m focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50"
55
+ ?disabled=${state !== 'idle'}
56
+ @click=${() => state === 'idle' && this.__copy(textToCopy, stateKey)}
57
+ @focusout=${(evt) => state !== 'idle' && evt.stopPropagation()}
58
+ @mouseout=${(evt) => state !== 'idle' && evt.stopPropagation()}
59
+ >
60
+ <div
61
+ class=${classMap({
62
+ 'relative flex flex-col items-center justify-center transition-opacity': true,
63
+ 'opacity-0': state !== 'idle',
64
+ })}
24
65
  >
25
- <foxy-customer-card
26
- infer="card"
27
- class="p-m"
28
- href=${ifDefined((_d = (_c = this.nucleon) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d._links['fx:customer'].href)}
29
- >
30
- </foxy-customer-card>
31
- </button>
32
- </foxy-internal-details>
66
+ ${icon}
67
+ <foxy-i18n class="mt-xs text-s font-medium leading-none" infer="" key=${caption}>
68
+ </foxy-i18n>
69
+ </div>
70
+ <div
71
+ class=${classMap({
72
+ 'absolute inset-0 flex items-center justify-center transition-opacity': true,
73
+ 'opacity-0': state === 'idle',
74
+ })}
75
+ >
76
+ <foxy-spinner layout="no-label" state=${spinnerState} infer="spinner"> </foxy-spinner>
77
+ </div>
78
+ </button>
33
79
  `;
34
80
  }
81
+ async __copy(text, stateKey) {
82
+ this[stateKey] = 'busy';
83
+ try {
84
+ await navigator.clipboard.writeText(text);
85
+ this[stateKey] = 'done';
86
+ }
87
+ catch (_a) {
88
+ this[stateKey] = 'fail';
89
+ }
90
+ setTimeout(() => (this[stateKey] = 'idle'), 3000);
91
+ }
35
92
  }
36
93
  //# sourceMappingURL=InternalTransactionCustomerControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTransactionCustomerControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,gEAA6D;AAGvF,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IACrE,aAAa;;QACX,OAAO,IAAI,CAAA;;;;;;iBAME,SAAS,aAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,0CAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;;;;;;;mBAOvD,CAAC,GAAU,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAe,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAkC,CAAC,CAAC;QACtD,CAAC;;;;;mBAKQ,SAAS,aAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,0CAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;;;;;KAKvE,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { html, TemplateResult } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { FormDialog } from '../../../FormDialog/FormDialog';\n\nexport class InternalTransactionCustomerControl extends InternalControl {\n renderControl(): TemplateResult {\n return html`\n <foxy-internal-details summary=\"customer\" infer=\"\" open>\n <foxy-form-dialog\n header=\"header\"\n infer=\"dialog\"\n form=\"foxy-customer\"\n href=${ifDefined(this.nucleon?.data?._links['fx:customer'].href)}\n id=\"dialog\"\n >\n </foxy-form-dialog>\n\n <button\n class=\"w-full text-left block rounded-b-l transition-colors hover-bg-contrast-5 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n @click=${(evt: Event) => {\n const dialog = this.renderRoot.querySelector('#dialog') as FormDialog;\n dialog.show(evt.currentTarget as HTMLButtonElement);\n }}\n >\n <foxy-customer-card\n infer=\"card\"\n class=\"p-m\"\n href=${ifDefined(this.nucleon?.data?._links['fx:customer'].href)}\n >\n </foxy-customer-card>\n </button>\n </foxy-internal-details>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTransactionCustomerControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAE1D,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IAAvE;;QASU,qBAAgB,GAAsC,MAAM,CAAC;QAE7D,kBAAa,GAAsC,MAAM,CAAC;IA8FpE,CAAC;IAxGC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACtC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACpC,CAAC;IACJ,CAAC;IAMD,aAAa;;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAA6B,CAAC;QAChD,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;QAC5D,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,OAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,+CAAzB,IAAI,EAAwB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAE3F,OAAO,IAAI,CAAA;;;;;;kBAMG,QAAQ,CAAC;YACf,4CAA4C,EAAE,IAAI;YAClD,yBAAyB,EAAE,CAAC,gBAAgB;YAC5C,mDAAmD,EAAE,CAAC,CAAC,gBAAgB;YACvE,uDAAuD,EAAE,CAAC,CAAC,gBAAgB;SAC5E,CAAC;;iBAEK,SAAS,CAAC,gBAAgB,CAAC;;8CAEE,SAAS,CAAC,YAAY,CAAC;;;;YAIzD,IAAI,CAAC,kBAAkB,CACvB,GAAG,CAAA,uiBAAuiB,EAC1iB,iBAAiB,EACjB,eAAe,EACf,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACxD;YACC,IAAI,CAAC,kBAAkB,CACvB,GAAG,CAAA,qYAAqY,EACxY,oBAAoB,EACpB,kBAAkB,cAClB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,cAAc,mCAAI,EAAE,CACjC;;;KAGN,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,IAAuB,EACvB,OAAe,EACf,QAA8C,EAC9C,UAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAEpF,OAAO,IAAI,CAAA;;;oBAGK,KAAK,KAAK,MAAM;iBACnB,GAAG,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;oBACxD,CAAC,GAAU,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE;oBACzD,CAAC,GAAU,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE;;;kBAG3D,QAAQ,CAAC;YACf,uEAAuE,EAAE,IAAI;YAC7E,WAAW,EAAE,KAAK,KAAK,MAAM;SAC9B,CAAC;;YAEA,IAAI;kFACkE,OAAO;;;;kBAIvE,QAAQ,CAAC;YACf,sEAAsE,EAAE,IAAI;YAC5E,WAAW,EAAE,KAAK,KAAK,MAAM;SAC9B,CAAC;;kDAEsC,YAAY;;;KAGzD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAA8C;QAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAExB,IAAI;YACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SACzB;QAED,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { SVGTemplateResult, TemplateResult } from 'lit-html';\nimport type { Transaction } from '../../Transaction';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../../../utils/class-map';\n\nexport class InternalTransactionCustomerControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __copyEmailState: { attribute: false },\n __copyIdState: { attribute: false },\n };\n }\n\n private __copyEmailState: 'idle' | 'busy' | 'done' | 'fail' = 'idle';\n\n private __copyIdState: 'idle' | 'busy' | 'done' | 'fail' = 'idle';\n\n renderControl(): TemplateResult {\n const host = this.nucleon as Transaction | null;\n const customerHref = host?.data?._links['fx:customer'].href;\n const customerPageHref = customerHref ? host?.getCustomerPageHref?.(customerHref) : void 0;\n\n return html`\n <foxy-i18n infer=\"\" class=\"block text-s font-medium leading-xs mb-xs\" key=\"label\">\n </foxy-i18n>\n\n <foxy-swipe-actions>\n <a\n class=${classMap({\n 'block ring-inset rounded transition-colors': true,\n 'ring-1 ring-contrast-10': !customerPageHref,\n 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !!customerPageHref,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': !!customerPageHref,\n })}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n href=${ifDefined(customerPageHref)}\n >\n <foxy-customer-card infer=\"\" href=${ifDefined(customerHref)}></foxy-customer-card>\n </a>\n\n <div class=\"h-full grid grid-cols-2 gap-s ml-s\" slot=\"action\">\n ${this.__renderCopyAction(\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1.2rem; height: 1.2rem\"><path fill-rule=\"evenodd\" d=\"M9.493 2.852a.75.75 0 0 0-1.486-.204L7.545 6H4.198a.75.75 0 0 0 0 1.5h3.14l-.69 5H3.302a.75.75 0 0 0 0 1.5h3.14l-.435 3.148a.75.75 0 0 0 1.486.204L7.955 14h2.986l-.434 3.148a.75.75 0 0 0 1.486.204L12.456 14h3.346a.75.75 0 0 0 0-1.5h-3.14l.69-5h3.346a.75.75 0 0 0 0-1.5h-3.14l.435-3.148a.75.75 0 0 0-1.486-.204L12.045 6H9.059l.434-3.148ZM8.852 7.5l-.69 5h2.986l.69-5H8.852Z\" clip-rule=\"evenodd\" /></svg>`,\n 'copy_id_caption',\n '__copyIdState',\n customerHref ? String(getResourceId(customerHref)) : ''\n )}\n ${this.__renderCopyAction(\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1.2rem; height: 1.2rem\"><path fill-rule=\"evenodd\" d=\"M5.404 14.596A6.5 6.5 0 1 1 16.5 10a1.25 1.25 0 0 1-2.5 0 4 4 0 1 0-.571 2.06A2.75 2.75 0 0 0 18 10a8 8 0 1 0-2.343 5.657.75.75 0 0 0-1.06-1.06 6.5 6.5 0 0 1-9.193 0ZM10 7.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z\" clip-rule=\"evenodd\" /></svg>`,\n 'copy_email_caption',\n '__copyEmailState',\n host?.data?.customer_email ?? ''\n )}\n </div>\n </foxy-swipe-actions>\n `;\n }\n\n private __renderCopyAction(\n icon: SVGTemplateResult,\n caption: string,\n stateKey: '__copyIdState' | '__copyEmailState',\n textToCopy: string\n ) {\n const state = this[stateKey];\n const spinnerState = state === 'fail' ? 'error' : state === 'done' ? 'end' : 'busy';\n\n return html`\n <button\n class=\"relative transition-colors bg-contrast-5 text-body hover-bg-contrast-10 rounded h-full py-0 px-m focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50\"\n ?disabled=${state !== 'idle'}\n @click=${() => state === 'idle' && this.__copy(textToCopy, stateKey)}\n @focusout=${(evt: Event) => state !== 'idle' && evt.stopPropagation()}\n @mouseout=${(evt: Event) => state !== 'idle' && evt.stopPropagation()}\n >\n <div\n class=${classMap({\n 'relative flex flex-col items-center justify-center transition-opacity': true,\n 'opacity-0': state !== 'idle',\n })}\n >\n ${icon}\n <foxy-i18n class=\"mt-xs text-s font-medium leading-none\" infer=\"\" key=${caption}>\n </foxy-i18n>\n </div>\n <div\n class=${classMap({\n 'absolute inset-0 flex items-center justify-center transition-opacity': true,\n 'opacity-0': state === 'idle',\n })}\n >\n <foxy-spinner layout=\"no-label\" state=${spinnerState} infer=\"spinner\"> </foxy-spinner>\n </div>\n </button>\n `;\n }\n\n private async __copy(text: string, stateKey: '__copyIdState' | '__copyEmailState') {\n this[stateKey] = 'busy';\n\n try {\n await navigator.clipboard.writeText(text);\n this[stateKey] = 'done';\n } catch {\n this[stateKey] = 'fail';\n }\n\n setTimeout(() => (this[stateKey] = 'idle'), 3000);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- import '../../../../internal/InternalDetails/index';
2
1
  import '../../../../internal/InternalControl/index';
3
2
  import '../../../CustomerCard/index';
4
- import '../../../FormDialog/index';
5
- import '../../../Customer/index';
3
+ import '../../../SwipeActions/index';
4
+ import '../../../Spinner/index';
5
+ import '../../../I18n/index';
6
6
  import { InternalTransactionCustomerControl as Control } from './InternalTransactionCustomerControl';
7
7
  export { Control as InternalTransactionCustomerControl };
@@ -1,8 +1,8 @@
1
- import "../../../../internal/InternalDetails/index.js";
2
1
  import "../../../../internal/InternalControl/index.js";
3
2
  import "../../../CustomerCard/index.js";
4
- import "../../../FormDialog/index.js";
5
- import "../../../Customer/index.js";
3
+ import "../../../SwipeActions/index.js";
4
+ import "../../../Spinner/index.js";
5
+ import "../../../I18n/index.js";
6
6
  import { InternalTransactionCustomerControl as Control } from "./InternalTransactionCustomerControl.js";
7
7
  customElements.define('foxy-internal-transaction-customer-control', Control);
8
8
  export { Control as InternalTransactionCustomerControl };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,uDAAoD;AAEpD,wCAAqC;AACrC,sCAAmC;AACnC,oCAAiC;AAEjC,OAAO,EAAE,kCAAkC,IAAI,OAAO,EAAE,gDAA6C;AAErG,cAAc,CAAC,MAAM,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;AAE7E,OAAO,EAAE,OAAO,IAAI,kCAAkC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalDetails/index';\nimport '../../../../internal/InternalControl/index';\n\nimport '../../../CustomerCard/index';\nimport '../../../FormDialog/index';\nimport '../../../Customer/index';\n\nimport { InternalTransactionCustomerControl as Control } from './InternalTransactionCustomerControl';\n\ncustomElements.define('foxy-internal-transaction-customer-control', Control);\n\nexport { Control as InternalTransactionCustomerControl };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,wCAAqC;AACrC,wCAAqC;AACrC,mCAAgC;AAChC,gCAA6B;AAE7B,OAAO,EAAE,kCAAkC,IAAI,OAAO,EAAE,gDAA6C;AAErG,cAAc,CAAC,MAAM,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;AAE7E,OAAO,EAAE,OAAO,IAAI,kCAAkC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '../../../CustomerCard/index';\nimport '../../../SwipeActions/index';\nimport '../../../Spinner/index';\nimport '../../../I18n/index';\n\nimport { InternalTransactionCustomerControl as Control } from './InternalTransactionCustomerControl';\n\ncustomElements.define('foxy-internal-transaction-customer-control', Control);\n\nexport { Control as InternalTransactionCustomerControl };\n"]}
@@ -30,7 +30,7 @@ export class InternalTransactionPostActionControl extends InternalControl {
30
30
 
31
31
  <vaadin-button
32
32
  class="w-full"
33
- theme="${theme} tertiary"
33
+ theme="${theme} tertiary-inline"
34
34
  ?disabled=${state === 'busy' || this.disabled}
35
35
  @click=${(evt) => {
36
36
  const confirm = this.renderRoot.querySelector('#confirm');
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTransactionPostActionControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,IAAI,EAAkB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,gEAA6D;AAEvF,OAAO,EAAE,cAAc,EAAE,kDAA+C;AAGxE,MAAM,OAAO,oCAAqC,SAAQ,eAAe;IAAzE;;QAUE,UAAK,GAAkB,IAAI,CAAC;QAE5B,SAAI,GAAkB,IAAI,CAAC;QAEnB,YAAO,GAAG,MAAM,CAAC;IA4C3B,CAAC;IAzDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9E,OAAO,IAAI,CAAA;;;;;gBAKC,CAAC,GAAoB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;;;;;;iBAMjE,KAAK;oBACF,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;iBACpC,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAA0B,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAA8B,CAAC,CAAC;QACnD,CAAC;;yBAEgB,KAAK;;KAEzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEpC,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,QAAQ,CAAC,EAAE;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9D;QAAC,WAAM;YACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;IACH,CAAC;CACF","sourcesContent":["import { PropertyDeclarations, html, TemplateResult } from 'lit-element';\nimport { InternalConfirmDialog } from '../../../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { DialogHideEvent } from '../../../../private/Dialog/DialogHideEvent';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { ButtonElement } from '@vaadin/vaadin-button';\n\nexport class InternalTransactionPostActionControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __state: { type: String },\n theme: { type: String },\n href: { type: String },\n };\n }\n\n theme: string | null = null;\n\n href: string | null = null;\n\n private __state = 'idle';\n\n renderControl(): TemplateResult {\n const state = this.__state;\n const theme = state === 'fail' ? 'error' : state === 'idle' ? this.theme : '';\n\n return html`\n <foxy-internal-confirm-dialog\n header=\"header\"\n infer=\"confirm\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.__submit()}\n >\n </foxy-internal-confirm-dialog>\n\n <vaadin-button\n class=\"w-full\"\n theme=\"${theme} tertiary\"\n ?disabled=${state === 'busy' || this.disabled}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n key=${state} infer=\"\"></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private async __submit(): Promise<void> {\n if (this.__state === 'busy') return;\n\n try {\n this.__state = 'busy';\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.href ?? '', { method: 'POST' });\n\n this.__state = response.ok ? 'idle' : 'fail';\n if (response.ok) this.dispatchEvent(new CustomEvent('done'));\n } catch {\n this.__state = 'fail';\n }\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTransactionPostActionControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,IAAI,EAAkB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,gEAA6D;AAEvF,OAAO,EAAE,cAAc,EAAE,kDAA+C;AAGxE,MAAM,OAAO,oCAAqC,SAAQ,eAAe;IAAzE;;QAUE,UAAK,GAAkB,IAAI,CAAC;QAE5B,SAAI,GAAkB,IAAI,CAAC;QAEnB,YAAO,GAAG,MAAM,CAAC;IA4C3B,CAAC;IAzDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9E,OAAO,IAAI,CAAA;;;;;gBAKC,CAAC,GAAoB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;;;;;;iBAMjE,KAAK;oBACF,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;iBACpC,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAA0B,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAA8B,CAAC,CAAC;QACnD,CAAC;;yBAEgB,KAAK;;KAEzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEpC,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,QAAQ,CAAC,EAAE;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;SAC9D;QAAC,WAAM;YACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;IACH,CAAC;CACF","sourcesContent":["import { PropertyDeclarations, html, TemplateResult } from 'lit-element';\nimport { InternalConfirmDialog } from '../../../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { DialogHideEvent } from '../../../../private/Dialog/DialogHideEvent';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { ButtonElement } from '@vaadin/vaadin-button';\n\nexport class InternalTransactionPostActionControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __state: { type: String },\n theme: { type: String },\n href: { type: String },\n };\n }\n\n theme: string | null = null;\n\n href: string | null = null;\n\n private __state = 'idle';\n\n renderControl(): TemplateResult {\n const state = this.__state;\n const theme = state === 'fail' ? 'error' : state === 'idle' ? this.theme : '';\n\n return html`\n <foxy-internal-confirm-dialog\n header=\"header\"\n infer=\"confirm\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.__submit()}\n >\n </foxy-internal-confirm-dialog>\n\n <vaadin-button\n class=\"w-full\"\n theme=\"${theme} tertiary-inline\"\n ?disabled=${state === 'busy' || this.disabled}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n key=${state} infer=\"\"></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private async __submit(): Promise<void> {\n if (this.__state === 'busy') return;\n\n try {\n this.__state = 'busy';\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.href ?? '', { method: 'POST' });\n\n this.__state = response.ok ? 'idle' : 'fail';\n if (response.ok) this.dispatchEvent(new CustomEvent('done'));\n } catch {\n this.__state = 'fail';\n }\n }\n}\n"]}
@@ -1,8 +1,10 @@
1
- import { TemplateResult } from 'lit-html';
1
+ import type { TemplateResult } from 'lit-html';
2
2
  import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
3
3
  export declare class InternalTransactionSummaryControl extends InternalControl {
4
+ private readonly __storeLoaderId;
4
5
  renderControl(): TemplateResult;
5
- private __renderStatus;
6
+ private get __storeHref();
7
+ private get __store();
6
8
  private __renderPrice;
7
- private __renderTotals;
9
+ private __renderStatus;
8
10
  }
@@ -1,82 +1,131 @@
1
- import { html } from 'lit-html';
2
1
  import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-html';
3
4
  export class InternalTransactionSummaryControl extends InternalControl {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.__storeLoaderId = 'storeLoader';
8
+ }
4
9
  renderControl() {
5
- var _a;
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
+ const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
12
+ if (!data)
13
+ return html ``;
14
+ const taxes = (_c = (_b = data === null || data === void 0 ? void 0 : data._embedded) === null || _b === void 0 ? void 0 : _b['fx:applied_taxes']) !== null && _c !== void 0 ? _c : [];
15
+ const shipments = (_e = (_d = data._embedded) === null || _d === void 0 ? void 0 : _d['fx:shipments']) !== null && _e !== void 0 ? _e : [];
6
16
  return html `
7
- <div class="border-t border-transparent">
8
- <div class="h-m flex items-center justify-between">
9
- <div class="text-xl font-medium">${this.__renderPrice()}</div>
10
- <div>${((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) ? this.__renderStatus() : ''}</div>
11
- </div>
17
+ <foxy-nucleon
18
+ infer=""
19
+ href=${ifDefined(this.__storeHref)}
20
+ id=${this.__storeLoaderId}
21
+ @update=${() => this.requestUpdate()}
22
+ >
23
+ </foxy-nucleon>
24
+
25
+ <p
26
+ class="grid gap-x-s text-right text-s leading-m border-dashed border rounded border-contrast-20 whitespace-nowrap overflow-auto"
27
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 2px); grid-template-columns: 1fr min-content"
28
+ >
29
+ <span><foxy-i18n key="subtotal" infer=""></foxy-i18n>&colon;</span>
30
+ <span>${this.__renderPrice(data.total_item_price)}</span>
31
+
32
+ ${shipments.length === 0 || data.total_shipping === 0
33
+ ? html `
34
+ <span><foxy-i18n infer="" key="total_shipping"></foxy-i18n>&colon;</span>
35
+ <span>${this.__renderPrice(data.total_shipping, true)} </span>
36
+ `
37
+ : shipments.map(shipment => {
38
+ return html `
39
+ <span>${shipment.shipping_service_description}&colon;</span>
40
+ <span>${this.__renderPrice(shipment.total_shipping, true)}</span>
41
+ `;
42
+ })}
43
+ ${taxes.length === 0 || data.total_tax === 0
44
+ ? html `
45
+ <span><foxy-i18n infer="" key="total_tax"></foxy-i18n>&colon;</span>
46
+ <span>${this.__renderPrice(data.total_tax, true)}</span>
47
+ `
48
+ : taxes.map(tax => {
49
+ return html `
50
+ <span>${tax.name}&colon;</span>
51
+ <span>${this.__renderPrice(tax.amount, true)}</span>
52
+ `;
53
+ })}
54
+ ${(_g = (_f = data === null || data === void 0 ? void 0 : data._embedded) === null || _f === void 0 ? void 0 : _f['fx:applied_gift_card_codes']) === null || _g === void 0 ? void 0 : _g.map(code => {
55
+ var _a;
56
+ return html `
57
+ <span>${code._embedded['fx:gift_card'].name}&colon;</span>
58
+ <span>${this.__renderPrice((_a = code.balance_adjustment) !== null && _a !== void 0 ? _a : 0, true)}</span>
59
+ `;
60
+ })}
61
+ ${(_j = (_h = data === null || data === void 0 ? void 0 : data._embedded) === null || _h === void 0 ? void 0 : _h['fx:discounts']) === null || _j === void 0 ? void 0 : _j.map(discount => {
62
+ return html `
63
+ <span data-testclass="discount">${discount.name}&colon;</span>
64
+ <span>${this.__renderPrice(discount.amount, true)}</span>
65
+ `;
66
+ })}
12
67
 
13
- <div class="border-t border-contrast-10 mb-s"></div>
68
+ <span class="col-span-2 border-t border-dashed border-contrast-20 my-s"></span>
14
69
 
15
- ${this.__renderTotals()}
16
- </div>
70
+ <span class="col-span-2 flex gap-s justify-between items-center">
71
+ ${this.__renderStatus()}
72
+ <span class="text-xl font-medium leading-xs">
73
+ <foxy-i18n infer="" key="total"></foxy-i18n>&colon;
74
+ ${this.__renderPrice(data.total_order)}
75
+ </span>
76
+ </span>
77
+ </p>
17
78
  `;
18
79
  }
19
- __renderStatus() {
80
+ get __storeHref() {
81
+ var _a, _b, _c;
82
+ return (_c = (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._links['fx:store']) === null || _c === void 0 ? void 0 : _c.href;
83
+ }
84
+ get __store() {
20
85
  var _a, _b;
21
- const colors = {
22
- authorized: 'bg-success text-success-contrast',
23
- completed: 'bg-success text-success-contrast',
24
- declined: 'bg-error text-error-contrast',
25
- rejected: 'bg-error text-error-contrast',
26
- };
27
- const status = ((_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.status) || 'completed';
28
- const defaultColor = 'bg-contrast-5 text-contrast';
29
- const color = status in colors ? colors[status] : defaultColor;
86
+ const selector = `#${this.__storeLoaderId}`;
87
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
88
+ }
89
+ __renderPrice(amount, isAdditive = false) {
90
+ var _a, _b, _c;
91
+ const currencyDisplay = ((_a = this.__store) === null || _a === void 0 ? void 0 : _a.use_international_currency_symbol) ? 'code' : 'symbol';
92
+ const currencyCode = (_c = (_b = this.nucleon) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.currency_code;
30
93
  return html `
31
94
  <foxy-i18n
32
- class="flex items-center h-xs px-s text-s font-medium rounded ${color}"
95
+ class=${isAdditive && amount !== 0 ? (amount > 0 ? 'text-success' : 'text-error') : ''}
33
96
  infer=""
34
- key="transaction_${status}"
97
+ key="price"
98
+ .options=${{
99
+ currencyDisplay,
100
+ signDisplay: isAdditive ? 'exceptZero' : 'auto',
101
+ amount: `${amount} ${currencyCode}`,
102
+ }}
35
103
  >
36
104
  </foxy-i18n>
37
105
  `;
38
106
  }
39
- __renderPrice() {
40
- var _a;
41
- const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
42
- const currency = data === null || data === void 0 ? void 0 : data.currency_code;
43
- if (!data)
44
- return html `--`;
45
- const options = { amount: `${data.total_order} ${currency}` };
46
- return html `<foxy-i18n infer="" key="price" .options=${options}></foxy-i18n>`;
47
- }
48
- __renderTotals() {
107
+ __renderStatus() {
49
108
  var _a, _b;
50
- const keys = ['total_item_price', 'total_shipping', 'total_tax'];
51
- const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
52
- const discounts = (_b = data === null || data === void 0 ? void 0 : data._embedded) === null || _b === void 0 ? void 0 : _b['fx:discounts'];
53
- const discount = discounts === null || discounts === void 0 ? void 0 : discounts.reduce((p, c) => p + c.amount, 0);
54
- const currency = data === null || data === void 0 ? void 0 : data.currency_code;
109
+ const status = ((_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.status) || 'completed';
110
+ let color = '';
111
+ if (['capturing', 'captured', 'approved', 'authorized', 'pending'].includes(status)) {
112
+ color = 'text-success bg-success-10';
113
+ }
114
+ else if (!status || status === 'completed') {
115
+ color = 'text-success-contrast bg-success';
116
+ }
117
+ else if (['problem', 'pending_fraud_review', 'rejected', 'declined'].includes(status)) {
118
+ color = 'text-error-contrast bg-error';
119
+ }
120
+ else {
121
+ color = 'bg-contrast-5 text-body';
122
+ }
55
123
  return html `
56
- ${keys.map(key => {
57
- const options = { amount: `${data === null || data === void 0 ? void 0 : data[key]} ${currency}` };
58
- return html `
59
- <div class="flex justify-between text-m text-secondary">
60
- <foxy-i18n key=${key} infer=""></foxy-i18n>
61
- ${data
62
- ? html `<foxy-i18n infer="" key="price" .options=${options}></foxy-i18n>`
63
- : html `<span>--</span>`}
64
- </div>
65
- `;
66
- })}
67
- ${discount
68
- ? html `
69
- <div class="flex justify-between text-m text-secondary">
70
- <foxy-i18n key="total_discount" infer=""></foxy-i18n>
71
- <foxy-i18n
72
- infer=""
73
- key=${(discounts === null || discounts === void 0 ? void 0 : discounts.length) === 20 ? 'total_discount_see_below' : 'price'}
74
- .options=${{ amount: `${discount} ${currency}` }}
75
- >
76
- </foxy-i18n>
77
- </div>
78
- `
79
- : ''}
124
+ <foxy-i18n
125
+ infer=""
126
+ class="${color} rounded-s py-xs px-s font-medium text-s leading-xs"
127
+ key="status_${status}"
128
+ ></foxy-i18n>
80
129
  `;
81
130
  }
82
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTransactionSummaryControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit-html';\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { Data } from '../../types';\n\nexport class InternalTransactionSummaryControl extends InternalControl {\n renderControl(): TemplateResult {\n return html`\n <div class=\"border-t border-transparent\">\n <div class=\"h-m flex items-center justify-between\">\n <div class=\"text-xl font-medium\">${this.__renderPrice()}</div>\n <div>${this.nucleon?.data ? this.__renderStatus() : ''}</div>\n </div>\n\n <div class=\"border-t border-contrast-10 mb-s\"></div>\n\n ${this.__renderTotals()}\n </div>\n `;\n }\n\n private __renderStatus() {\n const colors = {\n authorized: 'bg-success text-success-contrast',\n completed: 'bg-success text-success-contrast',\n declined: 'bg-error text-error-contrast',\n rejected: 'bg-error text-error-contrast',\n };\n\n const status = this.nucleon?.data?.status || 'completed';\n const defaultColor = 'bg-contrast-5 text-contrast';\n const color = status in colors ? colors[status as keyof typeof colors] : defaultColor;\n\n return html`\n <foxy-i18n\n class=\"flex items-center h-xs px-s text-s font-medium rounded ${color}\"\n infer=\"\"\n key=\"transaction_${status}\"\n >\n </foxy-i18n>\n `;\n }\n\n private __renderPrice() {\n const data = this.nucleon?.data;\n const currency = data?.currency_code;\n\n if (!data) return html`--`;\n\n const options = { amount: `${data.total_order} ${currency}` };\n return html`<foxy-i18n infer=\"\" key=\"price\" .options=${options}></foxy-i18n>`;\n }\n\n private __renderTotals() {\n const keys = ['total_item_price', 'total_shipping', 'total_tax'] as const;\n const data = this.nucleon?.data as Data | undefined;\n const discounts = data?._embedded?.['fx:discounts'];\n const discount = discounts?.reduce((p, c) => p + c.amount, 0);\n const currency = data?.currency_code;\n\n return html`\n ${keys.map(key => {\n const options = { amount: `${data?.[key]} ${currency}` };\n\n return html`\n <div class=\"flex justify-between text-m text-secondary\">\n <foxy-i18n key=${key} infer=\"\"></foxy-i18n>\n ${data\n ? html`<foxy-i18n infer=\"\" key=\"price\" .options=${options}></foxy-i18n>`\n : html`<span>--</span>`}\n </div>\n `;\n })}\n ${discount\n ? html`\n <div class=\"flex justify-between text-m text-secondary\">\n <foxy-i18n key=\"total_discount\" infer=\"\"></foxy-i18n>\n <foxy-i18n\n infer=\"\"\n key=${discounts?.length === 20 ? 'total_discount_see_below' : 'price'}\n .options=${{ amount: `${discount} ${currency}` }}\n >\n </foxy-i18n>\n </div>\n `\n : ''}\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTransactionSummaryControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Data } from '../../types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nexport class InternalTransactionSummaryControl extends InternalControl {\n private readonly __storeLoaderId = 'storeLoader';\n\n renderControl(): TemplateResult {\n const data = this.nucleon?.data as Data | undefined;\n if (!data) return html``;\n\n const taxes = data?._embedded?.['fx:applied_taxes'] ?? [];\n const shipments = data._embedded?.['fx:shipments'] ?? [];\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <p\n class=\"grid gap-x-s text-right text-s leading-m border-dashed border rounded border-contrast-20 whitespace-nowrap overflow-auto\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 2px); grid-template-columns: 1fr min-content\"\n >\n <span><foxy-i18n key=\"subtotal\" infer=\"\"></foxy-i18n>&colon;</span>\n <span>${this.__renderPrice(data.total_item_price as unknown as number)}</span>\n\n ${shipments.length === 0 || (data.total_shipping as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_shipping\"></foxy-i18n>&colon;</span>\n <span>${this.__renderPrice(data.total_shipping as unknown as number, true)} </span>\n `\n : shipments.map(shipment => {\n return html`\n <span>${shipment.shipping_service_description}&colon;</span>\n <span>${this.__renderPrice(shipment.total_shipping, true)}</span>\n `;\n })}\n ${taxes.length === 0 || (data.total_tax as unknown as number) === 0\n ? html`\n <span><foxy-i18n infer=\"\" key=\"total_tax\"></foxy-i18n>&colon;</span>\n <span>${this.__renderPrice(data.total_tax as unknown as number, true)}</span>\n `\n : taxes.map(tax => {\n return html`\n <span>${tax.name}&colon;</span>\n <span>${this.__renderPrice(tax.amount, true)}</span>\n `;\n })}\n ${data?._embedded?.['fx:applied_gift_card_codes']?.map(code => {\n return html`\n <span>${code._embedded['fx:gift_card'].name}&colon;</span>\n <span>${this.__renderPrice(code.balance_adjustment ?? 0, true)}</span>\n `;\n })}\n ${data?._embedded?.['fx:discounts']?.map(discount => {\n return html`\n <span data-testclass=\"discount\">${discount.name}&colon;</span>\n <span>${this.__renderPrice(discount.amount, true)}</span>\n `;\n })}\n\n <span class=\"col-span-2 border-t border-dashed border-contrast-20 my-s\"></span>\n\n <span class=\"col-span-2 flex gap-s justify-between items-center\">\n ${this.__renderStatus()}\n <span class=\"text-xl font-medium leading-xs\">\n <foxy-i18n infer=\"\" key=\"total\"></foxy-i18n>&colon;\n ${this.__renderPrice(data.total_order)}\n </span>\n </span>\n </p>\n `;\n }\n\n private get __storeHref() {\n return this.nucleon?.data?._links['fx:store']?.href as string | undefined;\n }\n\n private get __store() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n const selector = `#${this.__storeLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private __renderPrice(amount: number, isAdditive = false) {\n const currencyDisplay = this.__store?.use_international_currency_symbol ? 'code' : 'symbol';\n const currencyCode = this.nucleon?.data?.currency_code as string | undefined;\n\n return html`\n <foxy-i18n\n class=${isAdditive && amount !== 0 ? (amount > 0 ? 'text-success' : 'text-error') : ''}\n infer=\"\"\n key=\"price\"\n .options=${{\n currencyDisplay,\n signDisplay: isAdditive ? 'exceptZero' : 'auto',\n amount: `${amount} ${currencyCode}`,\n }}\n >\n </foxy-i18n>\n `;\n }\n\n private __renderStatus() {\n const status = this.nucleon?.data?.status || 'completed';\n let color = '';\n\n if (['capturing', 'captured', 'approved', 'authorized', 'pending'].includes(status)) {\n color = 'text-success bg-success-10';\n } else if (!status || status === 'completed') {\n color = 'text-success-contrast bg-success';\n } else if (['problem', 'pending_fraud_review', 'rejected', 'declined'].includes(status)) {\n color = 'text-error-contrast bg-error';\n } else {\n color = 'bg-contrast-5 text-body';\n }\n\n return html`\n <foxy-i18n\n infer=\"\"\n class=\"${color} rounded-s py-xs px-s font-medium text-s leading-xs\"\n key=\"status_${status}\"\n ></foxy-i18n>\n `;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import '../../../../internal/InternalControl/index';
2
+ import '../../../NucleonElement/index';
2
3
  import '../../../I18n/index';
3
4
  import { InternalTransactionSummaryControl as Control } from './InternalTransactionSummaryControl';
4
5
  export { Control as InternalTransactionSummaryControl };
@@ -1,4 +1,5 @@
1
1
  import "../../../../internal/InternalControl/index.js";
2
+ import "../../../NucleonElement/index.js";
2
3
  import "../../../I18n/index.js";
3
4
  import { InternalTransactionSummaryControl as Control } from "./InternalTransactionSummaryControl.js";
4
5
  customElements.define('foxy-internal-transaction-summary-control', Control);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,gCAA6B;AAE7B,OAAO,EAAE,iCAAiC,IAAI,OAAO,EAAE,+CAA4C;AAEnG,cAAc,CAAC,MAAM,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '../../../I18n/index';\n\nimport { InternalTransactionSummaryControl as Control } from './InternalTransactionSummaryControl';\n\ncustomElements.define('foxy-internal-transaction-summary-control', Control);\n\nexport { Control as InternalTransactionSummaryControl };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,0CAAuC;AACvC,gCAA6B;AAE7B,OAAO,EAAE,iCAAiC,IAAI,OAAO,EAAE,+CAA4C;AAEnG,cAAc,CAAC,MAAM,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '../../../NucleonElement/index';\nimport '../../../I18n/index';\n\nimport { InternalTransactionSummaryControl as Control } from './InternalTransactionSummaryControl';\n\ncustomElements.define('foxy-internal-transaction-summary-control', Control);\n\nexport { Control as InternalTransactionSummaryControl };\n"]}
@@ -1,7 +1,21 @@
1
1
  import type { Resource } from '@foxy.io/sdk/core';
2
2
  import type { Rels } from '@foxy.io/sdk/backend';
3
- export declare type Data = Resource<Rels.Transaction> & {
3
+ export declare type Data = Omit<Resource<Rels.Transaction, {
4
+ zoom: ['applied_taxes', 'shipments'];
5
+ }>, 'type'> & {
4
6
  _embedded?: {
7
+ 'fx:applied_gift_card_codes': Resource<Rels.GiftCardCodeLogs['child'], {
8
+ zoom: 'gift_card';
9
+ }>[];
5
10
  'fx:discounts'?: Resource<Rels.Discount>[];
6
11
  };
12
+ _links?: {
13
+ 'fx:subscription'?: {
14
+ href: string;
15
+ };
16
+ };
17
+ user_agent: string;
18
+ display_id: string | number;
19
+ source: string;
20
+ type: Rels.Transaction['props']['type'] | '';
7
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.Transaction> & {\n _embedded?: { 'fx:discounts'?: Resource<Rels.Discount>[] };\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\n// TODO: simplify once SDK types are fixed\n\nexport type Data = Omit<\n Resource<Rels.Transaction, { zoom: ['applied_taxes', 'shipments'] }>,\n 'type'\n> & {\n _embedded?: {\n 'fx:applied_gift_card_codes': Resource<Rels.GiftCardCodeLogs['child'], { zoom: 'gift_card' }>[];\n 'fx:discounts'?: Resource<Rels.Discount>[];\n };\n _links?: {\n 'fx:subscription'?: { href: string };\n };\n user_agent: string;\n display_id: string | number;\n source: string;\n type: Rels.Transaction['props']['type'] | '';\n};\n"]}
@@ -1,11 +1,9 @@
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 { Data, Templates } from './types';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import { InternalCard } from '../../internal/InternalCard/InternalCard';
4
+ declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
5
  defaultNS: string;
6
- } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
7
- styles: import("lit-element").CSSResultArray;
8
- };
6
+ } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost>;
9
7
  /**
10
8
  * Basic card displaying a transaction.
11
9
  *
@@ -24,11 +22,11 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
24
22
  declare class TransactionCard extends Base<Data> {
25
23
  templates: Templates;
26
24
  private __currencyDisplay;
27
- render(): TemplateResult;
25
+ renderBody(): TemplateResult;
28
26
  protected _sendGet(): Promise<Data>;
29
- private __renderTotal;
27
+ private __renderIdAndTotal;
30
28
  private __renderStatus;
31
- private __renderDescription;
29
+ private __renderSummary;
32
30
  private __renderCustomer;
33
31
  }
34
32
  export { TransactionCard };