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

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 (223) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-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 -1
  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-card.js +1 -1
  28. package/dist/cdn/foxy-customer-form.js +1 -1
  29. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  30. package/dist/cdn/foxy-customer-portal.js +3 -3
  31. package/dist/cdn/foxy-customer.js +1 -1
  32. package/dist/cdn/foxy-customers-table.js +1 -1
  33. package/dist/cdn/foxy-discount-builder.js +1 -1
  34. package/dist/cdn/foxy-discount-card.js +1 -1
  35. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  36. package/dist/cdn/foxy-donation.js +1 -1
  37. package/dist/cdn/foxy-downloadable-card.js +1 -1
  38. package/dist/cdn/foxy-downloadable-form.js +1 -1
  39. package/dist/cdn/foxy-email-template-card.js +1 -1
  40. package/dist/cdn/foxy-email-template-form.js +1 -1
  41. package/dist/cdn/foxy-error-entry-card.js +1 -1
  42. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  43. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  44. package/dist/cdn/foxy-form-dialog.js +1 -1
  45. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  46. package/dist/cdn/foxy-gift-card-card.js +1 -1
  47. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  48. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  49. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-form.js +1 -1
  51. package/dist/cdn/foxy-i18n-editor.js +2 -2
  52. package/dist/cdn/foxy-i18n.js +1 -1
  53. package/dist/cdn/foxy-integration-card.js +1 -1
  54. package/dist/cdn/foxy-integration-form.js +1 -1
  55. package/dist/cdn/foxy-item-card.js +1 -1
  56. package/dist/cdn/foxy-item-category-card.js +1 -1
  57. package/dist/cdn/foxy-item-category-form.js +1 -1
  58. package/dist/cdn/foxy-item-form.js +4 -4
  59. package/dist/cdn/foxy-item-option-card.js +1 -1
  60. package/dist/cdn/foxy-item-option-form.js +1 -1
  61. package/dist/cdn/foxy-items-form.js +1 -1
  62. package/dist/cdn/foxy-native-integration-card.js +1 -1
  63. package/dist/cdn/foxy-native-integration-form.js +1 -1
  64. package/dist/cdn/foxy-pagination.js +1 -1
  65. package/dist/cdn/foxy-passkey-card.js +1 -1
  66. package/dist/cdn/foxy-passkey-form.js +1 -1
  67. package/dist/cdn/foxy-payment-card.js +1 -1
  68. package/dist/cdn/foxy-payment-method-card.js +1 -1
  69. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  70. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  71. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  72. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  73. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  75. package/dist/cdn/foxy-query-builder.js +1 -1
  76. package/dist/cdn/foxy-report-form.js +5 -5
  77. package/dist/cdn/foxy-reports-table.js +1 -1
  78. package/dist/cdn/foxy-shipment-card.js +1 -1
  79. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  80. package/dist/cdn/foxy-sign-in-form.js +1 -1
  81. package/dist/cdn/foxy-spinner.js +2 -2
  82. package/dist/cdn/foxy-store-card.js +1 -1
  83. package/dist/cdn/foxy-store-form.js +1 -1
  84. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  85. package/dist/cdn/foxy-subscription-card.js +1 -1
  86. package/dist/cdn/foxy-subscription-form.js +2 -96
  87. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  88. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  89. package/dist/cdn/foxy-table.js +1 -1
  90. package/dist/cdn/foxy-tax-card.js +1 -1
  91. package/dist/cdn/foxy-tax-form.js +1 -1
  92. package/dist/cdn/foxy-template-config-form.js +1 -1
  93. package/dist/cdn/foxy-template-form.js +1 -1
  94. package/dist/cdn/foxy-template-set-card.js +1 -1
  95. package/dist/cdn/foxy-template-set-form.js +1 -1
  96. package/dist/cdn/foxy-transaction-card.js +95 -1
  97. package/dist/cdn/foxy-transaction.js +1 -1
  98. package/dist/cdn/foxy-transactions-table.js +7 -7
  99. package/dist/cdn/foxy-user-card.js +1 -1
  100. package/dist/cdn/foxy-user-form.js +1 -1
  101. package/dist/cdn/foxy-users-table.js +1 -1
  102. package/dist/cdn/foxy-webhook-card.js +1 -1
  103. package/dist/cdn/foxy-webhook-form.js +1 -1
  104. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  105. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  106. package/dist/cdn/{shared-b113467e.js → shared-00c2793e.js} +1 -1
  107. package/dist/cdn/{shared-15dfa16d.js → shared-029816d7.js} +1 -1
  108. package/dist/cdn/{shared-61b1fd60.js → shared-02bc0368.js} +1 -1
  109. package/dist/cdn/{shared-87f55237.js → shared-174f37e9.js} +1 -1
  110. package/dist/cdn/{shared-3f3903d4.js → shared-20ba4cdc.js} +1 -1
  111. package/dist/cdn/{shared-06916671.js → shared-268571df.js} +1 -1
  112. package/dist/cdn/{shared-8d99b885.js → shared-2b27e2e7.js} +1 -1
  113. package/dist/cdn/{shared-979e24ec.js → shared-2bdc99f4.js} +1 -1
  114. package/dist/cdn/{shared-3d95605f.js → shared-2c8c4b43.js} +3 -3
  115. package/dist/cdn/shared-2cf08dd4.js +1 -0
  116. package/dist/cdn/{shared-f8d1abc9.js → shared-2f09d4df.js} +4 -4
  117. package/dist/cdn/{shared-54cbd346.js → shared-30d00b64.js} +1 -1
  118. package/dist/cdn/{shared-d9f4138b.js → shared-32e736eb.js} +1 -1
  119. package/dist/cdn/{shared-a1d39ddd.js → shared-43f449bb.js} +1 -1
  120. package/dist/cdn/{shared-87824001.js → shared-4462dc70.js} +2 -2
  121. package/dist/cdn/{shared-02f8245a.js → shared-4aa4d980.js} +1 -1
  122. package/dist/cdn/{shared-63d11888.js → shared-4c124efc.js} +7 -7
  123. package/dist/cdn/shared-4c650e5c.js +1 -0
  124. package/dist/cdn/{shared-b984ab7c.js → shared-4e59fd48.js} +16 -16
  125. package/dist/cdn/{shared-69c3549d.js → shared-54b0e48f.js} +1 -1
  126. package/dist/cdn/{shared-ecd5eb1b.js → shared-5fa697c4.js} +1 -1
  127. package/dist/cdn/shared-61ade33e.js +6 -0
  128. package/dist/cdn/{shared-3bd99d11.js → shared-6a9ae42e.js} +1 -1
  129. package/dist/cdn/{shared-a95067d6.js → shared-76400719.js} +1 -1
  130. package/dist/cdn/{shared-ceec93fa.js → shared-7dd17943.js} +1 -1
  131. package/dist/cdn/{shared-ea1ab750.js → shared-7deff07c.js} +1 -1
  132. package/dist/cdn/{shared-fad099e6.js → shared-7e1953f5.js} +1 -1
  133. package/dist/cdn/shared-8201d0b5.js +1 -0
  134. package/dist/cdn/{shared-29e74661.js → shared-8952aeac.js} +1 -1
  135. package/dist/cdn/{shared-320fadbf.js → shared-896982f9.js} +1 -1
  136. package/dist/cdn/{shared-a5a03f4f.js → shared-8d8bed82.js} +1 -1
  137. package/dist/cdn/{shared-92dd9964.js → shared-99c0ae04.js} +1 -1
  138. package/dist/cdn/{shared-6ffa9f84.js → shared-9c08cfab.js} +1 -1
  139. package/dist/cdn/{shared-0ffe26d8.js → shared-9df8f842.js} +2 -2
  140. package/dist/cdn/{shared-0961f769.js → shared-a8dc23f1.js} +1 -1
  141. package/dist/cdn/{shared-3fee360a.js → shared-ac7c5a5e.js} +14 -14
  142. package/dist/cdn/{shared-5db2fec0.js → shared-ad34b6db.js} +1 -1
  143. package/dist/cdn/{shared-a1be9c27.js → shared-b1b8ea67.js} +1 -1
  144. package/dist/cdn/{shared-85712eed.js → shared-b509bc2c.js} +1 -1
  145. package/dist/cdn/{shared-de8bf756.js → shared-bc0d8d01.js} +2 -2
  146. package/dist/cdn/{shared-4105aacf.js → shared-be7bfbb0.js} +1 -1
  147. package/dist/cdn/{shared-745a575c.js → shared-bed7aae1.js} +1 -1
  148. package/dist/cdn/{shared-5291bdca.js → shared-c7b3d22b.js} +3 -3
  149. package/dist/cdn/{shared-264c82b8.js → shared-c9ba1b64.js} +3 -3
  150. package/dist/cdn/{shared-c43cd1fa.js → shared-ca4c5f0f.js} +1 -1
  151. package/dist/cdn/{shared-efbd62cb.js → shared-cdd2358f.js} +4 -4
  152. package/dist/cdn/{shared-d8ca5c87.js → shared-d21fa1a6.js} +1 -1
  153. package/dist/cdn/{shared-835cf735.js → shared-d57fac94.js} +1 -1
  154. package/dist/cdn/{shared-d600815d.js → shared-dbadd9cf.js} +1 -1
  155. package/dist/cdn/{shared-452e38da.js → shared-e39807f8.js} +1 -1
  156. package/dist/cdn/{shared-25edf241.js → shared-e83f2983.js} +1 -1
  157. package/dist/cdn/{shared-d1265ca0.js → shared-e91453df.js} +1 -1
  158. package/dist/cdn/{shared-5f1f0d8f.js → shared-ea527e98.js} +1 -1
  159. package/dist/cdn/shared-f9a3d1ff.js +6 -0
  160. package/dist/cdn/{shared-324665fd.js → shared-fa4f6cd3.js} +1 -1
  161. package/dist/cdn/shared-fc15a882.js +1 -0
  162. package/dist/cdn/{shared-2c92c192.js → shared-ff8ca16b.js} +1 -1
  163. package/dist/cdn/{shared-6d0be1e4.js → shared-ff9791cf.js} +1 -1
  164. package/dist/cdn/translations/cart-form/en.json +7 -6
  165. package/dist/cdn/translations/customer/en.json +23 -14
  166. package/dist/cdn/translations/customer-portal/en.json +22 -13
  167. package/dist/cdn/translations/item-card/en.json +1 -0
  168. package/dist/cdn/translations/item-form/en.json +2 -2
  169. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +2 -2
  170. package/dist/cdn/translations/shipment-card/en.json +1 -0
  171. package/dist/cdn/translations/subscription-form/en.json +23 -14
  172. package/dist/cdn/translations/transaction/en.json +27 -26
  173. package/dist/cdn/translations/transaction-card/en.json +22 -22
  174. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +28 -23
  175. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  176. package/dist/elements/internal/InternalControl/InternalControl.js +2 -1
  177. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  178. package/dist/elements/private/Dialog/Dialog.js +7 -1
  179. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  180. package/dist/elements/public/BillingAddressCard/BillingAddressCard.d.ts +2 -1
  181. package/dist/elements/public/BillingAddressCard/BillingAddressCard.js.map +1 -1
  182. package/dist/elements/public/CouponForm/types.d.ts +3 -7
  183. package/dist/elements/public/CouponForm/types.js.map +1 -1
  184. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -2
  185. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  186. package/dist/elements/public/ItemCard/ItemCard.js +4 -2
  187. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  188. package/dist/elements/public/ItemsForm/private/Item.js +1 -0
  189. package/dist/elements/public/ItemsForm/private/Item.js.map +1 -1
  190. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
  191. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  192. package/dist/elements/public/PaymentsApi/api/types.d.ts +2 -0
  193. package/dist/elements/public/PaymentsApi/api/types.js.map +1 -1
  194. package/dist/elements/public/ShipmentCard/ShipmentCard.js +5 -2
  195. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -1
  196. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +2 -2
  197. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  198. package/dist/elements/public/SubscriptionCard/types.d.ts +2 -2
  199. package/dist/elements/public/SubscriptionCard/types.js.map +1 -1
  200. package/dist/elements/public/Transaction/Transaction.d.ts +2 -3
  201. package/dist/elements/public/Transaction/Transaction.js +129 -127
  202. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  203. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +6 -4
  204. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  205. package/dist/elements/public/Transaction/types.d.ts +4 -17
  206. package/dist/elements/public/Transaction/types.js.map +1 -1
  207. package/dist/elements/public/TransactionCard/TransactionCard.d.ts +8 -10
  208. package/dist/elements/public/TransactionCard/TransactionCard.js +71 -51
  209. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  210. package/dist/elements/public/TransactionCard/index.d.ts +2 -1
  211. package/dist/elements/public/TransactionCard/index.js +2 -1
  212. package/dist/elements/public/TransactionCard/index.js.map +1 -1
  213. package/dist/elements/public/TransactionCard/types.d.ts +8 -2
  214. package/dist/elements/public/TransactionCard/types.js.map +1 -1
  215. package/dist/mixins/themeable.js +4 -0
  216. package/dist/mixins/themeable.js.map +1 -1
  217. package/package.json +2 -2
  218. package/dist/cdn/shared-4761cbda.js +0 -1
  219. package/dist/cdn/shared-87142858.js +0 -1
  220. package/dist/cdn/shared-e9276306.js +0 -1
  221. package/dist/cdn/shared-eacc4539.js +0 -1
  222. package/dist/cdn/shared-ec59505f.js +0 -12
  223. package/dist/cdn/shared-f3cd4d07.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/SubscriptionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data } from './types';\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 { parseFrequency } from '../../../utils/parse-frequency';\n\nconst NS = 'subscription-card';\nconst Base = ConfigurableMixin(\n ResponsiveMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Card element displaying subscription summary.\n *\n * @element foxy-subscription-card\n * @since 1.4.0\n */\nexport class SubscriptionCard extends Base<Data> {\n render(): TemplateResult {\n const isActive = !!this.data?.is_active;\n const isFailed = !!this.data?.first_failed_transaction_date;\n\n return html`\n <div class=\"relative text-left\">\n <div\n class=${classMap({\n 'flex items-start sm-items-center space-x-m transition duration-150 ease-in-out': true,\n 'opacity-0': !this.in({ idle: 'snapshot' }),\n })}\n >\n <div\n class=${classMap({\n 'min-w-0 flex-shrink-0 rounded-full relative flex p-s': true,\n 'text-success bg-success-10': isActive && !isFailed,\n 'text-body bg-contrast-5': !isActive && !isFailed,\n 'text-error bg-error-10': isFailed,\n })}\n >\n <iron-icon\n class=\"m-auto\"\n icon=${isFailed ? 'error-outline' : isActive ? 'done' : 'done-all'}\n >\n </iron-icon>\n </div>\n\n <div class=\"flex-1 min-w-0 leading-xs flex flex-col sm-flex-row sm-items-center\">\n <div class=\"order-1 sm-order-0\">\n <div class=\"text-body font-medium origin-top-left text-m\">\n <foxy-i18n\n data-testid=\"summary\"\n options=${JSON.stringify(this.__getSummaryOptions())}\n lang=${this.lang}\n key=\"transaction_summary\"\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n\n <div\n class=${classMap({\n 'text-m': true,\n 'text-tertiary': !isActive && !isFailed,\n 'text-success': isActive && !isFailed,\n 'text-error': isFailed,\n })}\n >\n <foxy-i18n\n data-testid=\"status\"\n options=${JSON.stringify(this.__getStatusOptions())}\n lang=${this.lang}\n key=${this.__getStatusKey()}\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n </div>\n\n <div\n class=\"flex-1 font-medium leading-xs mb-xs sm-mb-0 sm-text-right text-xxs sm-text-l tracking-wide sm-tracking-normal uppercase sm-normal-case order-0 sm-order-1 font-tnum text-secondary sm-text-body\"\n >\n <foxy-i18n\n data-testid=\"price\"\n options=${JSON.stringify(this.__getPriceOptions())}\n lang=${this.lang}\n key=\"price_${this.data?.frequency === '.5m' ? 'twice_a_month' : 'recurring'}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n </div>\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition ease-in-out duration-150': true,\n 'opacity-0': this.in({ idle: 'snapshot' }),\n })}\n >\n <foxy-spinner\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot()}\n `;\n }\n\n private __getSummaryOptions() {\n if (this.data === null) return {};\n const items = this.data._embedded['fx:transaction_template']._embedded['fx:items'];\n\n return {\n most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],\n count_minus_one: items.length - 1,\n count: items.length,\n };\n }\n\n private __getStatusOptions() {\n const data = this.data;\n\n if (data === null) return {};\n if (data.first_failed_transaction_date) return { date: data.first_failed_transaction_date };\n if (data.end_date) return { date: data.end_date };\n if (data.is_active === false) return {};\n if (new Date(data.start_date) > new Date()) return { date: data.start_date };\n\n return { date: data.next_transaction_date };\n }\n\n private __getPriceOptions() {\n if (this.data === null) return {};\n\n const transaction = this.data._embedded['fx:last_transaction'];\n const amount = `${transaction.total_order} ${transaction.currency_code}`;\n return { ...parseFrequency(this.data.frequency), amount };\n }\n\n private __getStatusKey() {\n const data = this.data;\n\n if (data === null) return;\n if (data.first_failed_transaction_date) return 'subscription_failed';\n if (data.end_date) {\n const hasEnded = new Date(data.end_date).getTime() > Date.now();\n return hasEnded ? 'subscription_will_be_cancelled' : 'subscription_cancelled';\n }\n\n if (data.is_active === false) return 'subscription_inactive';\n if (new Date(data.start_date) > new Date()) return 'subscription_will_be_active';\n\n return 'subscription_active';\n }\n}\n"]}
1
+ {"version":3,"file":"SubscriptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/SubscriptionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data } from './types';\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 { parseFrequency } from '../../../utils/parse-frequency';\n\nconst NS = 'subscription-card';\nconst Base = ConfigurableMixin(\n ResponsiveMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Card element displaying subscription summary.\n *\n * @element foxy-subscription-card\n * @since 1.4.0\n */\nexport class SubscriptionCard extends Base<Data> {\n render(): TemplateResult {\n const isActive = !!this.data?.is_active;\n const isFailed = !!this.data?.first_failed_transaction_date;\n\n return html`\n <div class=\"relative text-left\">\n <div\n class=${classMap({\n 'flex items-start sm-items-center space-x-m transition duration-150 ease-in-out': true,\n 'opacity-0': !this.in({ idle: 'snapshot' }),\n })}\n >\n <div\n class=${classMap({\n 'min-w-0 flex-shrink-0 rounded-full relative flex p-s': true,\n 'text-success bg-success-10': isActive && !isFailed,\n 'text-body bg-contrast-5': !isActive && !isFailed,\n 'text-error bg-error-10': isFailed,\n })}\n >\n <iron-icon\n class=\"m-auto\"\n icon=${isFailed ? 'error-outline' : isActive ? 'done' : 'done-all'}\n >\n </iron-icon>\n </div>\n\n <div class=\"flex-1 min-w-0 leading-xs flex flex-col sm-flex-row sm-items-center\">\n <div class=\"order-1 sm-order-0\">\n <div class=\"text-body font-medium origin-top-left text-m\">\n <foxy-i18n\n data-testid=\"summary\"\n options=${JSON.stringify(this.__getSummaryOptions())}\n lang=${this.lang}\n key=\"transaction_summary\"\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n\n <div\n class=${classMap({\n 'text-m': true,\n 'text-tertiary': !isActive && !isFailed,\n 'text-success': isActive && !isFailed,\n 'text-error': isFailed,\n })}\n >\n <foxy-i18n\n data-testid=\"status\"\n options=${JSON.stringify(this.__getStatusOptions())}\n lang=${this.lang}\n key=${this.__getStatusKey()}\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n </div>\n\n <div\n class=\"flex-1 font-medium leading-xs mb-xs sm-mb-0 sm-text-right text-xxs sm-text-l tracking-wide sm-tracking-normal uppercase sm-normal-case order-0 sm-order-1 font-tnum text-secondary sm-text-body\"\n >\n <foxy-i18n\n data-testid=\"price\"\n options=${JSON.stringify(this.__getPriceOptions())}\n lang=${this.lang}\n key=\"price_${this.data?.frequency === '.5m' ? 'twice_a_month' : 'recurring'}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n &#8203;\n </div>\n </div>\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition ease-in-out duration-150': true,\n 'opacity-0': this.in({ idle: 'snapshot' }),\n })}\n >\n <foxy-spinner\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot()}\n `;\n }\n\n private __getSummaryOptions() {\n if (this.data === null) return {};\n const items = this.data._embedded['fx:transaction_template']._embedded['fx:items'];\n\n return {\n most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],\n count_minus_one: items.length - 1,\n count: items.length,\n };\n }\n\n private __getStatusOptions() {\n const data = this.data;\n\n if (data === null) return {};\n if (data.first_failed_transaction_date) return { date: data.first_failed_transaction_date };\n if (data.end_date) return { date: data.end_date };\n if (data.is_active === false) return {};\n if (new Date(data.start_date) > new Date()) return { date: data.start_date };\n\n return { date: data.next_transaction_date };\n }\n\n private __getPriceOptions() {\n if (this.data === null) return {};\n\n const cart = this.data._embedded['fx:transaction_template'];\n const amount = `${cart.total_order} ${cart.currency_code}`;\n return { ...parseFrequency(this.data.frequency), amount };\n }\n\n private __getStatusKey() {\n const data = this.data;\n\n if (data === null) return;\n if (data.first_failed_transaction_date) return 'subscription_failed';\n if (data.end_date) {\n const hasEnded = new Date(data.end_date).getTime() > Date.now();\n return hasEnded ? 'subscription_will_be_cancelled' : 'subscription_cancelled';\n }\n\n if (data.is_active === false) return 'subscription_inactive';\n if (new Date(data.start_date) > new Date()) return 'subscription_will_be_active';\n\n return 'subscription_active';\n }\n}\n"]}
@@ -4,9 +4,9 @@ import { Resource } from '@foxy.io/sdk/core';
4
4
  import { SubscriptionCard } from './SubscriptionCard';
5
5
  export declare type Rel = Rels.Subscription;
6
6
  export declare type Data = Resource<Rel, {
7
- zoom: ['last_transaction', {
7
+ zoom: {
8
8
  transaction_template: 'items';
9
- }];
9
+ };
10
10
  }>;
11
11
  export declare type Templates = {
12
12
  default?: Renderer<SubscriptionCard>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Rels } from '@foxy.io/sdk/backend';\nimport { Renderer } from '../../../mixins/configurable';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { SubscriptionCard } from './SubscriptionCard';\n\nexport type Rel = Rels.Subscription;\nexport type Data = Resource<Rel, { zoom: ['last_transaction', { transaction_template: 'items' }] }>;\nexport type Templates = { default?: Renderer<SubscriptionCard> };\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Rels } from '@foxy.io/sdk/backend';\nimport { Renderer } from '../../../mixins/configurable';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { SubscriptionCard } from './SubscriptionCard';\n\nexport type Rel = Rels.Subscription;\nexport type Data = Resource<Rel, { zoom: { transaction_template: 'items' } }>;\nexport type Templates = { default?: Renderer<SubscriptionCard> };\n"]}
@@ -2,7 +2,7 @@ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import type { Data } from './types';
3
3
  import { BooleanSelector } from '@foxy.io/sdk/core';
4
4
  import { InternalForm } from '../../internal/InternalForm/InternalForm';
5
- declare const Transaction_base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
6
6
  defaultNS: string;
7
7
  };
8
8
  /**
@@ -11,7 +11,7 @@ declare const Transaction_base: typeof InternalForm & import("lit-element").Cons
11
11
  * @element foxy-transaction
12
12
  * @since 1.17.0
13
13
  */
14
- export declare class Transaction extends Transaction_base<Data> {
14
+ export declare class Transaction extends Base<Data> {
15
15
  static get properties(): PropertyDeclarations;
16
16
  /** URL of the `fx:hosted_payment_gateways` property helper resource. */
17
17
  hostedPaymentGatewaysHelper: string | null;
@@ -19,7 +19,6 @@ export declare class Transaction extends Transaction_base<Data> {
19
19
  paymentGatewaysHelper: string | null;
20
20
  getSubscriptionPageHref: ((href: string) => string) | null;
21
21
  getCustomerPageHref: ((href: string) => string) | null;
22
- private readonly __renderHeader;
23
22
  get readonlySelector(): BooleanSelector;
24
23
  get hiddenSelector(): BooleanSelector;
25
24
  renderBody(): TemplateResult;
@@ -4,14 +4,15 @@ import { ResponsiveMixin } from "../../../mixins/responsive.js";
4
4
  import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
5
5
  import { ifDefined } from 'lit-html/directives/if-defined';
6
6
  import { html } from 'lit-element';
7
- import uainfer from 'uainfer/src/uainfer.js';
7
+ const NS = 'transaction';
8
+ const Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));
8
9
  /**
9
10
  * Transaction summary page (`fx:transaction`).
10
11
  *
11
12
  * @element foxy-transaction
12
13
  * @since 1.17.0
13
14
  */
14
- export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm, 'transaction')) {
15
+ export class Transaction extends Base {
15
16
  constructor() {
16
17
  super(...arguments);
17
18
  /** URL of the `fx:hosted_payment_gateways` property helper resource. */
@@ -20,122 +21,6 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
20
21
  this.paymentGatewaysHelper = null;
21
22
  this.getSubscriptionPageHref = null;
22
23
  this.getCustomerPageHref = null;
23
- this.__renderHeader = () => {
24
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
25
- const source = (_a = this.data) === null || _a === void 0 ? void 0 : _a.source;
26
- const type = (_b = this.data) === null || _b === void 0 ? void 0 : _b.type;
27
- let subtitleKey = 'subtitle';
28
- if (type === 'updateinfo') {
29
- if (source === '' || (source === null || source === void 0 ? void 0 : source.startsWith('cit_'))) {
30
- subtitleKey = 'subtitle_customer_changed_payment_method';
31
- }
32
- else if (source === 'mit_uoe') {
33
- subtitleKey = 'subtitle_admin_changed_payment_method_with_uoe';
34
- }
35
- else if (source === 'mit_api') {
36
- subtitleKey = 'subtitle_integration_changed_payment_method';
37
- }
38
- else {
39
- subtitleKey = 'subtitle_admin_changed_payment_method';
40
- }
41
- }
42
- else if (type === 'subscription_modification') {
43
- if (source === '' || (source === null || source === void 0 ? void 0 : source.startsWith('cit_'))) {
44
- subtitleKey = 'subtitle_customer_changed_subscription';
45
- }
46
- else if (source === 'mit_uoe') {
47
- subtitleKey = 'subtitle_admin_changed_subscription_with_uoe';
48
- }
49
- else if (source === 'mit_api') {
50
- subtitleKey = 'subtitle_integration_changed_subscription';
51
- }
52
- else {
53
- subtitleKey = 'subtitle_admin_changed_subscription';
54
- }
55
- }
56
- else if (type === 'subscription_renewal') {
57
- if (source === 'mit_recurring') {
58
- subtitleKey = 'subtitle_subscription_renewal_attempt';
59
- }
60
- else if (source === 'mit_recurring_reattempt_automated') {
61
- subtitleKey = 'subtitle_subscription_renewal_automated_reattempt';
62
- }
63
- else if (source === 'mit_recurring_reattempt_manual') {
64
- subtitleKey = 'subtitle_subscription_renewal_manual_reattempt';
65
- }
66
- }
67
- else if (type === 'subscription_cancellation') {
68
- if (source === 'cit_recurring_cancellation') {
69
- subtitleKey = 'subtitle_customer_canceled_subscription';
70
- }
71
- else if (source === 'mit_recurring_cancellation') {
72
- subtitleKey = 'subtitle_admin_canceled_subscription';
73
- }
74
- }
75
- else {
76
- if ((_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:subscription']) {
77
- if (source === null || source === void 0 ? void 0 : source.startsWith('cit_')) {
78
- subtitleKey = 'subtitle_customer_subscribed';
79
- }
80
- else if (source === 'mit_uoe') {
81
- subtitleKey = 'subtitle_admin_subscribed_with_uoe';
82
- }
83
- else if (source === 'mit_api') {
84
- subtitleKey = 'subtitle_integration_subscribed';
85
- }
86
- }
87
- else {
88
- if (source === null || source === void 0 ? void 0 : source.startsWith('cit_')) {
89
- subtitleKey = 'subtitle_customer_placed_order';
90
- }
91
- else if (source === 'mit_uoe') {
92
- subtitleKey = 'subtitle_admin_placed_order_with_uoe';
93
- }
94
- else if (source === 'mit_api') {
95
- subtitleKey = 'subtitle_integration_placed_order';
96
- }
97
- }
98
- }
99
- return html `
100
- <h1>
101
- <div class="flex items-center gap-s leading-xs text-xxl font-medium break-all">
102
- <foxy-i18n infer="header" key="title" .options=${this.data}></foxy-i18n>
103
- <foxy-copy-to-clipboard
104
- infer="header"
105
- class="inline-block text-m"
106
- text=${(_d = this.data) === null || _d === void 0 ? void 0 : _d.display_id}
107
- >
108
- </foxy-copy-to-clipboard>
109
- </div>
110
-
111
- <foxy-i18n
112
- class="block leading-xs text-l text-secondary"
113
- infer="header"
114
- key=${subtitleKey}
115
- .options=${{
116
- transaction_date: (_e = this.data) === null || _e === void 0 ? void 0 : _e.transaction_date,
117
- user_agent: uainfer.analyze((_g = (_f = this.data) === null || _f === void 0 ? void 0 : _f.user_agent) !== null && _g !== void 0 ? _g : '').toString(),
118
- ip_country: (_h = this.data) === null || _h === void 0 ? void 0 : _h.ip_country,
119
- }}
120
- >
121
- </foxy-i18n>
122
-
123
- <foxy-internal-transaction-actions-control class="mt-xs" infer="actions">
124
- </foxy-internal-transaction-actions-control>
125
- </h1>
126
-
127
- ${['problem', 'pending_fraud_review', 'rejected', 'declined'].includes((_k = (_j = this.data) === null || _j === void 0 ? void 0 : _j.status) !== null && _k !== void 0 ? _k : '')
128
- ? html `
129
- <p
130
- class="leading-xs text-body rounded bg-error-10 block"
131
- style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
132
- >
133
- <foxy-i18n infer="header" key="alert_status_${(_l = this.data) === null || _l === void 0 ? void 0 : _l.status}"></foxy-i18n>
134
- </p>
135
- `
136
- : ''}
137
- `;
138
- };
139
24
  }
140
25
  static get properties() {
141
26
  return {
@@ -170,9 +55,85 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
170
55
  return new BooleanSelector(`${super.hiddenSelector} ${hidden.join(' ')}`.trim());
171
56
  }
172
57
  renderBody() {
173
- var _a, _b, _c, _d;
58
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
174
59
  let shipmentsLink = undefined;
60
+ let subtitleKey = 'subtitle';
175
61
  let itemsLink = undefined;
62
+ const alertStatuses = ['problem', 'pending_fraud_review', 'rejected', 'declined'];
63
+ const hidden = this.hiddenSelector;
64
+ const source = (_a = this.data) === null || _a === void 0 ? void 0 : _a.source;
65
+ const type = (_b = this.data) === null || _b === void 0 ? void 0 : _b.type;
66
+ if (type === 'updateinfo') {
67
+ if (!source || (source === null || source === void 0 ? void 0 : source.startsWith('cit_'))) {
68
+ subtitleKey = 'subtitle_customer_changed_payment_method';
69
+ }
70
+ else if (source === 'mit_uoe') {
71
+ subtitleKey = 'subtitle_admin_changed_payment_method_with_uoe';
72
+ }
73
+ else if (source === 'mit_api') {
74
+ subtitleKey = 'subtitle_integration_changed_payment_method';
75
+ }
76
+ else {
77
+ subtitleKey = 'subtitle_admin_changed_payment_method';
78
+ }
79
+ }
80
+ else if (type === 'subscription_modification') {
81
+ if (!source || (source === null || source === void 0 ? void 0 : source.startsWith('cit_'))) {
82
+ subtitleKey = 'subtitle_customer_changed_subscription';
83
+ }
84
+ else if (source === 'mit_uoe') {
85
+ subtitleKey = 'subtitle_admin_changed_subscription_with_uoe';
86
+ }
87
+ else if (source === 'mit_api') {
88
+ subtitleKey = 'subtitle_integration_changed_subscription';
89
+ }
90
+ else {
91
+ subtitleKey = 'subtitle_admin_changed_subscription';
92
+ }
93
+ }
94
+ else if (type === 'subscription_renewal') {
95
+ if (source === 'mit_recurring') {
96
+ subtitleKey = 'subtitle_subscription_renewal_attempt';
97
+ }
98
+ else if (source === 'mit_recurring_reattempt_automated') {
99
+ subtitleKey = 'subtitle_subscription_renewal_automated_reattempt';
100
+ }
101
+ else if (source === 'mit_recurring_reattempt_manual') {
102
+ subtitleKey = 'subtitle_subscription_renewal_manual_reattempt';
103
+ }
104
+ }
105
+ else if (type === 'subscription_cancellation') {
106
+ if (source === 'cit_recurring_cancellation') {
107
+ subtitleKey = 'subtitle_customer_canceled_subscription';
108
+ }
109
+ else if (source === 'mit_recurring_cancellation') {
110
+ subtitleKey = 'subtitle_admin_canceled_subscription';
111
+ }
112
+ }
113
+ else {
114
+ if ((_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:subscription']) {
115
+ if (source === null || source === void 0 ? void 0 : source.startsWith('cit_')) {
116
+ subtitleKey = 'subtitle_customer_subscribed';
117
+ }
118
+ else if (source === 'mit_uoe') {
119
+ subtitleKey = 'subtitle_admin_subscribed_with_uoe';
120
+ }
121
+ else if (source === 'mit_api') {
122
+ subtitleKey = 'subtitle_integration_subscribed';
123
+ }
124
+ }
125
+ else {
126
+ if (source === null || source === void 0 ? void 0 : source.startsWith('cit_')) {
127
+ subtitleKey = 'subtitle_customer_placed_order';
128
+ }
129
+ else if (source === 'mit_uoe') {
130
+ subtitleKey = 'subtitle_admin_placed_order_with_uoe';
131
+ }
132
+ else if (source === 'mit_api') {
133
+ subtitleKey = 'subtitle_integration_placed_order';
134
+ }
135
+ }
136
+ }
176
137
  if (this.data) {
177
138
  try {
178
139
  const shipmentsUrl = new URL(this.data._links['fx:shipments'].href);
@@ -182,17 +143,55 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
182
143
  shipmentsLink = shipmentsUrl.toString();
183
144
  itemsLink = itemsUrl.toString();
184
145
  }
185
- catch (_e) {
146
+ catch (_p) {
186
147
  //
187
148
  }
188
149
  }
189
150
  return html `
190
- ${this.__renderHeader()}
151
+ <h2>
152
+ <div class="flex items-center gap-s leading-xs text-xxl font-medium break-all">
153
+ <foxy-i18n infer="header" key="title" .options=${this.data}></foxy-i18n>
154
+ <foxy-copy-to-clipboard
155
+ infer="header"
156
+ class="inline-block text-m"
157
+ text=${(_d = this.data) === null || _d === void 0 ? void 0 : _d.display_id}
158
+ >
159
+ </foxy-copy-to-clipboard>
160
+ </div>
161
+
162
+ <foxy-i18n
163
+ class="block leading-xs text-l text-secondary"
164
+ infer="header"
165
+ key=${subtitleKey}
166
+ .options=${{
167
+ transaction_date: (_e = this.data) === null || _e === void 0 ? void 0 : _e.transaction_date,
168
+ ip_country: (_f = this.data) === null || _f === void 0 ? void 0 : _f.ip_country,
169
+ }}
170
+ >
171
+ </foxy-i18n>
172
+
173
+ <foxy-internal-transaction-actions-control class="mt-xs" infer="actions">
174
+ </foxy-internal-transaction-actions-control>
175
+ </h2>
176
+
177
+ ${alertStatuses.includes((_h = (_g = this.data) === null || _g === void 0 ? void 0 : _g.status) !== null && _h !== void 0 ? _h : '')
178
+ ? html `
179
+ <p
180
+ class="leading-xs text-body rounded bg-error-10 block"
181
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
182
+ >
183
+ <foxy-i18n infer="header" key="alert_status_${(_j = this.data) === null || _j === void 0 ? void 0 : _j.status}"></foxy-i18n>
184
+ </p>
185
+ `
186
+ : ''}
191
187
 
192
188
  <foxy-internal-transaction-customer-control infer="customer">
193
189
  </foxy-internal-transaction-customer-control>
194
190
 
195
- <div class="grid gap-s">
191
+ <div
192
+ class="grid gap-s"
193
+ ?hidden=${hidden.matches('items', true) && hidden.matches('summary', true)}
194
+ >
196
195
  <foxy-internal-async-list-control
197
196
  infer="items"
198
197
  class="min-w-0"
@@ -211,7 +210,7 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
211
210
 
212
211
  <foxy-internal-async-list-control
213
212
  infer="billing-addresses"
214
- first=${ifDefined((_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:billing_addresses'].href)}
213
+ first=${ifDefined((_k = this.data) === null || _k === void 0 ? void 0 : _k._links['fx:billing_addresses'].href)}
215
214
  item="foxy-billing-address-card"
216
215
  form="foxy-address-form"
217
216
  hide-create-button
@@ -222,7 +221,7 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
222
221
 
223
222
  <foxy-internal-async-list-control
224
223
  infer="payments"
225
- first=${ifDefined((_b = this.data) === null || _b === void 0 ? void 0 : _b._links['fx:payments'].href)}
224
+ first=${ifDefined((_l = this.data) === null || _l === void 0 ? void 0 : _l._links['fx:payments'].href)}
226
225
  item="foxy-payment-card"
227
226
  .itemProps=${{
228
227
  'hosted-payment-gateways-helper': this.hostedPaymentGatewaysHelper,
@@ -231,11 +230,14 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
231
230
  >
232
231
  </foxy-internal-async-list-control>
233
232
 
234
- <div class="grid gap-m sm-grid-cols-2">
233
+ <div
234
+ class="grid gap-m sm-grid-cols-2"
235
+ ?hidden=${hidden.matches('custom-fields', true) && hidden.matches('attributes', true)}
236
+ >
235
237
  <foxy-internal-async-list-control
236
238
  infer="custom-fields"
237
239
  class="min-w-0"
238
- first=${ifDefined((_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:custom_fields'].href)}
240
+ first=${ifDefined((_m = this.data) === null || _m === void 0 ? void 0 : _m._links['fx:custom_fields'].href)}
239
241
  limit="5"
240
242
  form="foxy-custom-field-form"
241
243
  item="foxy-custom-field-card"
@@ -246,7 +248,7 @@ export class Transaction extends ResponsiveMixin(TranslatableMixin(InternalForm,
246
248
  <foxy-internal-async-list-control
247
249
  infer="attributes"
248
250
  class="min-w-0"
249
- first=${ifDefined((_d = this.data) === null || _d === void 0 ? void 0 : _d._links['fx:attributes'].href)}
251
+ first=${ifDefined((_o = this.data) === null || _o === void 0 ? void 0 : _o._links['fx:attributes'].href)}
250
252
  limit="5"
251
253
  form="foxy-attribute-form"
252
254
  item="foxy-attribute-card"
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/Transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\nimport uainfer from 'uainfer/src/uainfer.js';\n\n/**\n * Transaction summary page (`fx:transaction`).\n *\n * @element foxy-transaction\n * @since 1.17.0\n */\nexport class Transaction extends ResponsiveMixin(\n TranslatableMixin(InternalForm, 'transaction')\n)<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n hostedPaymentGatewaysHelper: { attribute: 'hosted-payment-gateways-helper' },\n paymentGatewaysHelper: { attribute: 'payment-gateways-helper' },\n getSubscriptionPageHref: { attribute: false },\n getCustomerPageHref: { attribute: false },\n };\n }\n\n /** URL of the `fx:hosted_payment_gateways` property helper resource. */\n hostedPaymentGatewaysHelper: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper resource. */\n paymentGatewaysHelper: string | null = null;\n\n getSubscriptionPageHref: ((href: string) => string) | null = null;\n\n getCustomerPageHref: ((href: string) => string) | null = null;\n\n private readonly __renderHeader = () => {\n const source = this.data?.source;\n const type = this.data?.type;\n\n let subtitleKey = 'subtitle';\n\n if (type === 'updateinfo') {\n if (source === '' || source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_changed_payment_method';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_changed_payment_method_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_changed_payment_method';\n } else {\n subtitleKey = 'subtitle_admin_changed_payment_method';\n }\n } else if (type === 'subscription_modification') {\n if (source === '' || source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_changed_subscription';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_changed_subscription_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_changed_subscription';\n } else {\n subtitleKey = 'subtitle_admin_changed_subscription';\n }\n } else if (type === 'subscription_renewal') {\n if (source === 'mit_recurring') {\n subtitleKey = 'subtitle_subscription_renewal_attempt';\n } else if (source === 'mit_recurring_reattempt_automated') {\n subtitleKey = 'subtitle_subscription_renewal_automated_reattempt';\n } else if (source === 'mit_recurring_reattempt_manual') {\n subtitleKey = 'subtitle_subscription_renewal_manual_reattempt';\n }\n } else if (type === 'subscription_cancellation') {\n if (source === 'cit_recurring_cancellation') {\n subtitleKey = 'subtitle_customer_canceled_subscription';\n } else if (source === 'mit_recurring_cancellation') {\n subtitleKey = 'subtitle_admin_canceled_subscription';\n }\n } else {\n if (this.data?._links['fx:subscription']) {\n if (source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_subscribed';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_subscribed_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_subscribed';\n }\n } else {\n if (source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_placed_order';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_placed_order_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_placed_order';\n }\n }\n }\n\n return html`\n <h1>\n <div class=\"flex items-center gap-s leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"header\" key=\"title\" .options=${this.data}></foxy-i18n>\n <foxy-copy-to-clipboard\n infer=\"header\"\n class=\"inline-block text-m\"\n text=${this.data?.display_id}\n >\n </foxy-copy-to-clipboard>\n </div>\n\n <foxy-i18n\n class=\"block leading-xs text-l text-secondary\"\n infer=\"header\"\n key=${subtitleKey}\n .options=${{\n transaction_date: this.data?.transaction_date,\n user_agent: uainfer.analyze(this.data?.user_agent ?? '').toString(),\n ip_country: this.data?.ip_country,\n }}\n >\n </foxy-i18n>\n\n <foxy-internal-transaction-actions-control class=\"mt-xs\" infer=\"actions\">\n </foxy-internal-transaction-actions-control>\n </h1>\n\n ${['problem', 'pending_fraud_review', 'rejected', 'declined'].includes(\n this.data?.status ?? ''\n )\n ? html`\n <p\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n infer=\"header\" key=\"alert_status_${this.data?.status}\"></foxy-i18n>\n </p>\n `\n : ''}\n `;\n };\n\n get readonlySelector(): BooleanSelector {\n const isEditable = Boolean(this.data?._links['fx:void'] ?? this.data?._links['fx:refund']);\n return isEditable\n ? new BooleanSelector(`${super.readonlySelector} billing-addresses`)\n : new BooleanSelector(\n `${super.readonlySelector} billing-addresses items attributes custom-fields`\n );\n }\n\n get hiddenSelector(): BooleanSelector {\n const hidden = ['billing-addresses:dialog:delete billing-addresses:dialog:timestamps'];\n const type = this.data?.type;\n\n if (!this.data?._links['fx:subscription']) hidden.push('subscription');\n if (type === 'subscription_modification') hidden.push('actions');\n\n if (type === 'updateinfo') {\n hidden.push('not=customer,subscription,payments,custom-fields,attributes');\n }\n\n if (type === 'subscription_cancellation') {\n hidden.push('not=customer,subscription,custom-fields,attributes');\n }\n\n return new BooleanSelector(`${super.hiddenSelector} ${hidden.join(' ')}`.trim());\n }\n\n renderBody(): TemplateResult {\n let shipmentsLink: string | undefined = undefined;\n let itemsLink: string | undefined = undefined;\n\n if (this.data) {\n try {\n const shipmentsUrl = new URL(this.data._links['fx:shipments'].href);\n const itemsUrl = new URL(this.data._links['fx:items'].href);\n shipmentsUrl.searchParams.set('zoom', 'items:item_category');\n itemsUrl.searchParams.set('zoom', 'item_options');\n shipmentsLink = shipmentsUrl.toString();\n itemsLink = itemsUrl.toString();\n } catch {\n //\n }\n }\n\n return html`\n ${this.__renderHeader()}\n\n <foxy-internal-transaction-customer-control infer=\"customer\">\n </foxy-internal-transaction-customer-control>\n\n <div class=\"grid gap-s\">\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(itemsLink)}\n limit=\"10\"\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n alert\n .related=${[this.href]}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-transaction-summary-control infer=\"summary\" class=\"min-w-0\">\n </foxy-internal-transaction-summary-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"billing-addresses\"\n first=${ifDefined(this.data?._links['fx:billing_addresses'].href)}\n item=\"foxy-billing-address-card\"\n form=\"foxy-address-form\"\n hide-create-button\n hide-delete-button\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"payments\"\n first=${ifDefined(this.data?._links['fx:payments'].href)}\n item=\"foxy-payment-card\"\n .itemProps=${{\n 'hosted-payment-gateways-helper': this.hostedPaymentGatewaysHelper,\n 'payment-gateways-helper': this.paymentGatewaysHelper,\n }}\n >\n </foxy-internal-async-list-control>\n\n <div class=\"grid gap-m sm-grid-cols-2\">\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:custom_fields'].href)}\n limit=\"5\"\n form=\"foxy-custom-field-form\"\n item=\"foxy-custom-field-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n form=\"foxy-attribute-form\"\n item=\"foxy-attribute-card\"\n alert\n >\n </foxy-internal-async-list-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"shipments\"\n first=${ifDefined(shipmentsLink)}\n item=\"foxy-shipment-card\"\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/elements/public/Transaction/Transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\nconst NS = 'transaction';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Transaction summary page (`fx:transaction`).\n *\n * @element foxy-transaction\n * @since 1.17.0\n */\nexport class Transaction extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n hostedPaymentGatewaysHelper: { attribute: 'hosted-payment-gateways-helper' },\n paymentGatewaysHelper: { attribute: 'payment-gateways-helper' },\n getSubscriptionPageHref: { attribute: false },\n getCustomerPageHref: { attribute: false },\n };\n }\n\n /** URL of the `fx:hosted_payment_gateways` property helper resource. */\n hostedPaymentGatewaysHelper: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper resource. */\n paymentGatewaysHelper: string | null = null;\n\n getSubscriptionPageHref: ((href: string) => string) | null = null;\n\n getCustomerPageHref: ((href: string) => string) | null = null;\n\n get readonlySelector(): BooleanSelector {\n const isEditable = Boolean(this.data?._links['fx:void'] ?? this.data?._links['fx:refund']);\n return isEditable\n ? new BooleanSelector(`${super.readonlySelector} billing-addresses`)\n : new BooleanSelector(\n `${super.readonlySelector} billing-addresses items attributes custom-fields`\n );\n }\n\n get hiddenSelector(): BooleanSelector {\n const hidden = ['billing-addresses:dialog:delete billing-addresses:dialog:timestamps'];\n const type = this.data?.type;\n\n if (!this.data?._links['fx:subscription']) hidden.push('subscription');\n if (type === 'subscription_modification') hidden.push('actions');\n\n if (type === 'updateinfo') {\n hidden.push('not=customer,subscription,payments,custom-fields,attributes');\n }\n\n if (type === 'subscription_cancellation') {\n hidden.push('not=customer,subscription,custom-fields,attributes');\n }\n\n return new BooleanSelector(`${super.hiddenSelector} ${hidden.join(' ')}`.trim());\n }\n\n renderBody(): TemplateResult {\n let shipmentsLink: string | undefined = undefined;\n let subtitleKey = 'subtitle';\n let itemsLink: string | undefined = undefined;\n\n const alertStatuses = ['problem', 'pending_fraud_review', 'rejected', 'declined'];\n const hidden = this.hiddenSelector;\n const source = this.data?.source;\n const type = this.data?.type;\n\n if (type === 'updateinfo') {\n if (!source || source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_changed_payment_method';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_changed_payment_method_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_changed_payment_method';\n } else {\n subtitleKey = 'subtitle_admin_changed_payment_method';\n }\n } else if (type === 'subscription_modification') {\n if (!source || source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_changed_subscription';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_changed_subscription_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_changed_subscription';\n } else {\n subtitleKey = 'subtitle_admin_changed_subscription';\n }\n } else if (type === 'subscription_renewal') {\n if (source === 'mit_recurring') {\n subtitleKey = 'subtitle_subscription_renewal_attempt';\n } else if (source === 'mit_recurring_reattempt_automated') {\n subtitleKey = 'subtitle_subscription_renewal_automated_reattempt';\n } else if (source === 'mit_recurring_reattempt_manual') {\n subtitleKey = 'subtitle_subscription_renewal_manual_reattempt';\n }\n } else if (type === 'subscription_cancellation') {\n if (source === 'cit_recurring_cancellation') {\n subtitleKey = 'subtitle_customer_canceled_subscription';\n } else if (source === 'mit_recurring_cancellation') {\n subtitleKey = 'subtitle_admin_canceled_subscription';\n }\n } else {\n if (this.data?._links['fx:subscription']) {\n if (source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_subscribed';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_subscribed_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_subscribed';\n }\n } else {\n if (source?.startsWith('cit_')) {\n subtitleKey = 'subtitle_customer_placed_order';\n } else if (source === 'mit_uoe') {\n subtitleKey = 'subtitle_admin_placed_order_with_uoe';\n } else if (source === 'mit_api') {\n subtitleKey = 'subtitle_integration_placed_order';\n }\n }\n }\n\n if (this.data) {\n try {\n const shipmentsUrl = new URL(this.data._links['fx:shipments'].href);\n const itemsUrl = new URL(this.data._links['fx:items'].href);\n shipmentsUrl.searchParams.set('zoom', 'items:item_category');\n itemsUrl.searchParams.set('zoom', 'item_options');\n shipmentsLink = shipmentsUrl.toString();\n itemsLink = itemsUrl.toString();\n } catch {\n //\n }\n }\n\n return html`\n <h2>\n <div class=\"flex items-center gap-s leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"header\" key=\"title\" .options=${this.data}></foxy-i18n>\n <foxy-copy-to-clipboard\n infer=\"header\"\n class=\"inline-block text-m\"\n text=${this.data?.display_id}\n >\n </foxy-copy-to-clipboard>\n </div>\n\n <foxy-i18n\n class=\"block leading-xs text-l text-secondary\"\n infer=\"header\"\n key=${subtitleKey}\n .options=${{\n transaction_date: this.data?.transaction_date,\n ip_country: this.data?.ip_country,\n }}\n >\n </foxy-i18n>\n\n <foxy-internal-transaction-actions-control class=\"mt-xs\" infer=\"actions\">\n </foxy-internal-transaction-actions-control>\n </h2>\n\n ${alertStatuses.includes(this.data?.status ?? '')\n ? html`\n <p\n class=\"leading-xs text-body rounded bg-error-10 block\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <foxy-i18n infer=\"header\" key=\"alert_status_${this.data?.status}\"></foxy-i18n>\n </p>\n `\n : ''}\n\n <foxy-internal-transaction-customer-control infer=\"customer\">\n </foxy-internal-transaction-customer-control>\n\n <div\n class=\"grid gap-s\"\n ?hidden=${hidden.matches('items', true) && hidden.matches('summary', true)}\n >\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(itemsLink)}\n limit=\"10\"\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n alert\n .related=${[this.href]}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-transaction-summary-control infer=\"summary\" class=\"min-w-0\">\n </foxy-internal-transaction-summary-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"billing-addresses\"\n first=${ifDefined(this.data?._links['fx:billing_addresses'].href)}\n item=\"foxy-billing-address-card\"\n form=\"foxy-address-form\"\n hide-create-button\n hide-delete-button\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"payments\"\n first=${ifDefined(this.data?._links['fx:payments'].href)}\n item=\"foxy-payment-card\"\n .itemProps=${{\n 'hosted-payment-gateways-helper': this.hostedPaymentGatewaysHelper,\n 'payment-gateways-helper': this.paymentGatewaysHelper,\n }}\n >\n </foxy-internal-async-list-control>\n\n <div\n class=\"grid gap-m sm-grid-cols-2\"\n ?hidden=${hidden.matches('custom-fields', true) && hidden.matches('attributes', true)}\n >\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:custom_fields'].href)}\n limit=\"5\"\n form=\"foxy-custom-field-form\"\n item=\"foxy-custom-field-card\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n form=\"foxy-attribute-form\"\n item=\"foxy-attribute-card\"\n alert\n >\n </foxy-internal-async-list-control>\n </div>\n\n <foxy-internal-async-list-control\n infer=\"shipments\"\n first=${ifDefined(shipmentsLink)}\n item=\"foxy-shipment-card\"\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
@@ -51,12 +51,14 @@ export class InternalTransactionSummaryControl extends InternalControl {
51
51
  <span>${this.__renderPrice(tax.amount, true)}</span>
52
52
  `;
53
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 => {
54
+ ${
55
+ // @ts-expect-error SDK doesn't support name mismatch between `fx:applied_gift_card_codes` and `fx:gift_card_logs`
56
+ (_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
57
  var _a;
56
58
  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
- `;
59
+ <span>${code._embedded['fx:gift_card'].name}&colon;</span>
60
+ <span>${this.__renderPrice((_a = code.balance_adjustment) !== null && _a !== void 0 ? _a : 0, true)}</span>
61
+ `;
60
62
  })}
61
63
  ${(_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
64
  return html `
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTransactionSummaryControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,iCAAkC,SAAQ,eAAe;IAAtE;;QACmB,oBAAe,GAAG,aAAa,CAAC;IA4HnD,CAAC;IA1HC,aAAa;;QACX,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAwB,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;QAEzB,MAAM,KAAK,eAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAG,kBAAkB,oCAAK,EAAE,CAAC;QAC1D,MAAM,SAAS,eAAG,IAAI,CAAC,SAAS,0CAAG,cAAc,oCAAK,EAAE,CAAC;QAEzD,OAAO,IAAI,CAAA;;;eAGA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;aAC7B,IAAI,CAAC,eAAe;kBACf,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;;;;;;;gBAS5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAqC,CAAC;;UAEpE,SAAS,CAAC,MAAM,KAAK,CAAC,IAAK,IAAI,CAAC,cAAoC,KAAK,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAA;;sBAEM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAmC,EAAE,IAAI,CAAC;aAC3E;YACH,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAA;wBACD,QAAQ,CAAC,4BAA4B;wBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;eAC1D,CAAC;YACJ,CAAC,CAAC;UACJ,KAAK,CAAC,MAAM,KAAK,CAAC,IAAK,IAAI,CAAC,SAA+B,KAAK,CAAC;YACjE,CAAC,CAAC,IAAI,CAAA;;sBAEM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAA8B,EAAE,IAAI,CAAC;aACtE;YACH,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACd,OAAO,IAAI,CAAA;wBACD,GAAG,CAAC,IAAI;wBACR,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;eAC7C,CAAC;YACJ,CAAC,CAAC;UACJ,YAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAG,4BAA4B,2CAAG,GAAG,CAAC,IAAI,CAAC,EAAE;;YAC5D,OAAO,IAAI,CAAA;oBACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI;oBACnC,IAAI,CAAC,aAAa,OAAC,IAAI,CAAC,kBAAkB,mCAAI,CAAC,EAAE,IAAI,CAAC;WAC/D,CAAC;QACJ,CAAC,CAAC;UACA,YAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAG,cAAc,2CAAG,GAAG,CAAC,QAAQ,CAAC,EAAE;YAClD,OAAO,IAAI,CAAA;8CACyB,QAAQ,CAAC,IAAI;oBACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;WAClD,CAAC;QACJ,CAAC,CAAC;;;;;YAKE,IAAI,CAAC,cAAc,EAAE;;;cAGnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;;;;KAI7C,CAAC;IACJ,CAAC;IAED,IAAY,WAAW;;QACrB,OAAO,kBAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,0CAAE,MAAM,CAAC,UAAU,2CAAG,IAA0B,CAAC;IAC5E,CAAC;IAED,IAAY,OAAO;;QAEjB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,mBAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAS,QAAQ,CAAC,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACvE,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,UAAU,GAAG,KAAK;;QACtD,MAAM,eAAe,GAAG,OAAA,IAAI,CAAC,OAAO,0CAAE,iCAAiC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5F,MAAM,YAAY,GAAG,YAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,0CAAE,aAAmC,CAAC;QAE7E,OAAO,IAAI,CAAA;;gBAEC,UAAU,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;;;mBAG3E;YACT,eAAe;YACf,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;YAC/C,MAAM,EAAE,GAAG,MAAM,IAAI,YAAY,EAAE;SACpC;;;KAGJ,CAAC;IACJ,CAAC;IAEO,cAAc;;QACpB,MAAM,MAAM,GAAG,aAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,0CAAE,MAAM,KAAI,WAAW,CAAC;QACzD,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACnF,KAAK,GAAG,4BAA4B,CAAC;SACtC;aAAM,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE;YAC5C,KAAK,GAAG,kCAAkC,CAAC;SAC5C;aAAM,IAAI,CAAC,SAAS,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACvF,KAAK,GAAG,8BAA8B,CAAC;SACxC;aAAM;YACL,KAAK,GAAG,yBAAyB,CAAC;SACnC;QAED,OAAO,IAAI,CAAA;;;iBAGE,KAAK;sBACA,MAAM;;KAEvB,CAAC;IACJ,CAAC;CACF","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
+ {"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 ${\n // @ts-expect-error SDK doesn't support name mismatch between `fx:applied_gift_card_codes` and `fx:gift_card_logs`\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 }\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,20 +1,7 @@
1
1
  import type { Resource } from '@foxy.io/sdk/core';
2
2
  import type { Rels } from '@foxy.io/sdk/backend';
3
3
  export declare type Data = Resource<Rels.Transaction, {
4
- zoom: ['applied_taxes', 'shipments'];
5
- }> & {
6
- _links?: {
7
- 'fx:subscription'?: {
8
- href: string;
9
- };
10
- };
11
- _embedded?: {
12
- 'fx:discounts'?: Resource<Rels.Discount>[];
13
- 'fx:applied_gift_card_codes': Resource<Rels.GiftCardCodeLogs['child'], {
14
- zoom: 'gift_card';
15
- }>[];
16
- };
17
- user_agent: string;
18
- display_id: string | number;
19
- source: string;
20
- };
4
+ zoom: [{
5
+ applied_gift_card_codes: ['gift_card'];
6
+ }, 'applied_taxes', 'shipments', 'discounts'];
7
+ }>;
@@ -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, { zoom: ['applied_taxes', 'shipments'] }> & {\n _links?: {\n 'fx:subscription'?: { href: string };\n };\n _embedded?: {\n 'fx:discounts'?: Resource<Rels.Discount>[];\n 'fx:applied_gift_card_codes': Resource<Rels.GiftCardCodeLogs['child'], { zoom: 'gift_card' }>[];\n };\n user_agent: string;\n display_id: string | number;\n source: string;\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\nexport type Data = Resource<\n Rels.Transaction,\n { zoom: [{ applied_gift_card_codes: ['gift_card'] }, 'applied_taxes', 'shipments', 'discounts'] }\n>;\n"]}