@foxy.io/elements 1.18.0-beta.18 → 1.18.0-beta.19

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 (315) 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 -0
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -0
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -0
  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-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -0
  13. package/dist/cdn/foxy-cart-form.js +1 -0
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-api.js +1 -1
  25. package/dist/cdn/foxy-customer-card.js +1 -1
  26. package/dist/cdn/foxy-customer-form.js +1 -1
  27. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  28. package/dist/cdn/foxy-customer-portal.js +3 -2
  29. package/dist/cdn/foxy-customer.js +1 -1
  30. package/dist/cdn/foxy-customers-table.js +1 -1
  31. package/dist/cdn/foxy-discount-builder.js +1 -1
  32. package/dist/cdn/foxy-discount-card.js +1 -1
  33. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  34. package/dist/cdn/foxy-donation.js +1 -1
  35. package/dist/cdn/foxy-email-template-card.js +1 -1
  36. package/dist/cdn/foxy-email-template-form.js +1 -1
  37. package/dist/cdn/foxy-error-entry-card.js +1 -1
  38. package/dist/cdn/foxy-form-dialog.js +1 -1
  39. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  40. package/dist/cdn/foxy-gift-card-card.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  43. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  44. package/dist/cdn/foxy-gift-card-form.js +1 -1
  45. package/dist/cdn/foxy-i18n-editor.js +2 -2
  46. package/dist/cdn/foxy-i18n.js +1 -1
  47. package/dist/cdn/foxy-integration-card.js +1 -1
  48. package/dist/cdn/foxy-integration-form.js +1 -1
  49. package/dist/cdn/foxy-item-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-form.js +1 -1
  52. package/dist/cdn/foxy-item-form.js +1 -1
  53. package/dist/cdn/foxy-item-option-card.js +1 -1
  54. package/dist/cdn/foxy-item-option-form.js +1 -1
  55. package/dist/cdn/foxy-items-form.js +1 -1
  56. package/dist/cdn/foxy-nucleon-element.js +1 -1
  57. package/dist/cdn/foxy-pagination.js +1 -1
  58. package/dist/cdn/foxy-payment-card.js +1 -1
  59. package/dist/cdn/foxy-payment-method-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  66. package/dist/cdn/foxy-payments-api.js +1 -1
  67. package/dist/cdn/foxy-query-builder.js +1 -1
  68. package/dist/cdn/foxy-report-form.js +1 -1
  69. package/dist/cdn/foxy-reports-table.js +1 -1
  70. package/dist/cdn/foxy-shipment-card.js +1 -1
  71. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  72. package/dist/cdn/foxy-sign-in-form.js +1 -1
  73. package/dist/cdn/foxy-spinner.js +2 -2
  74. package/dist/cdn/foxy-store-form.js +1 -1
  75. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  76. package/dist/cdn/foxy-subscription-card.js +1 -1
  77. package/dist/cdn/foxy-subscription-form.js +4 -16
  78. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  79. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  80. package/dist/cdn/foxy-table.js +1 -1
  81. package/dist/cdn/foxy-tax-card.js +1 -1
  82. package/dist/cdn/foxy-tax-form.js +1 -1
  83. package/dist/cdn/foxy-template-card.js +1 -1
  84. package/dist/cdn/foxy-template-config-form.js +1 -1
  85. package/dist/cdn/foxy-template-form.js +1 -1
  86. package/dist/cdn/foxy-template-set-card.js +1 -1
  87. package/dist/cdn/foxy-template-set-form.js +1 -1
  88. package/dist/cdn/foxy-transaction-card.js +1 -1
  89. package/dist/cdn/foxy-transaction.js +1 -1
  90. package/dist/cdn/foxy-transactions-table.js +60 -1
  91. package/dist/cdn/foxy-user-form.js +1 -1
  92. package/dist/cdn/foxy-users-table.js +1 -1
  93. package/dist/cdn/foxy-webhook-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-form.js +1 -1
  95. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  96. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  97. package/dist/cdn/{shared-29e21467.js → shared-00752056.js} +1 -1
  98. package/dist/cdn/{shared-56d26968.js → shared-01d2cae6.js} +1 -1
  99. package/dist/cdn/{shared-d5f242df.js → shared-09c75a01.js} +1 -1
  100. package/dist/cdn/shared-09eb558f.js +1 -0
  101. package/dist/cdn/{shared-236d9b7e.js → shared-0a52b08c.js} +1 -1
  102. package/dist/cdn/{shared-55e20d5b.js → shared-0b17e9a6.js} +1 -1
  103. package/dist/cdn/{shared-f022673a.js → shared-124a17c1.js} +1 -1
  104. package/dist/cdn/{shared-344485cf.js → shared-15effede.js} +5 -5
  105. package/dist/cdn/{shared-196fa627.js → shared-17cb43f3.js} +2 -2
  106. package/dist/cdn/shared-181f51bd.js +1 -0
  107. package/dist/cdn/{shared-262caea4.js → shared-1936d1d5.js} +1 -1
  108. package/dist/cdn/{shared-f2d19582.js → shared-1e9fd9f1.js} +1 -1
  109. package/dist/cdn/{shared-c52d3772.js → shared-2470973b.js} +1 -1
  110. package/dist/cdn/{shared-923da875.js → shared-254ef6a4.js} +1 -1
  111. package/dist/cdn/shared-2afc2d3b.js +1 -0
  112. package/dist/cdn/{shared-0672e78b.js → shared-2bce9f91.js} +1 -1
  113. package/dist/cdn/{shared-b5cbbdd8.js → shared-2c067e88.js} +1 -1
  114. package/dist/cdn/{shared-dcbf57e0.js → shared-2f7dcefa.js} +1 -1
  115. package/dist/cdn/{shared-4975f86f.js → shared-37d6c723.js} +1 -1
  116. package/dist/cdn/{shared-3a3878c9.js → shared-39549b4e.js} +1 -1
  117. package/dist/cdn/{shared-f23d122e.js → shared-3aecf4e3.js} +1 -1
  118. package/dist/cdn/{shared-17d24760.js → shared-3ba49bac.js} +1 -1
  119. package/dist/cdn/shared-436f4187.js +1 -0
  120. package/dist/cdn/{shared-5ad8c9a0.js → shared-43bcce74.js} +1 -1
  121. package/dist/cdn/{shared-34b11d34.js → shared-4c32f1ad.js} +1 -1
  122. package/dist/cdn/{shared-ea316e64.js → shared-4cf568d8.js} +1 -1
  123. package/dist/cdn/{shared-2215e6c8.js → shared-50f97405.js} +1 -1
  124. package/dist/cdn/{shared-4308cdab.js → shared-54c5d16b.js} +1 -1
  125. package/dist/cdn/{shared-ff2f84c7.js → shared-63139d9e.js} +1 -1
  126. package/dist/cdn/{shared-ef0fc329.js → shared-6a53f85f.js} +1 -1
  127. package/dist/cdn/{shared-002b788f.js → shared-76b3d76a.js} +1 -1
  128. package/dist/cdn/shared-7a1de87a.js +1 -0
  129. package/dist/cdn/shared-7b6f4a11.js +1 -0
  130. package/dist/cdn/{shared-8a5bdad3.js → shared-7cc9cc71.js} +1 -1
  131. package/dist/cdn/{shared-162fc285.js → shared-7df6ee40.js} +1 -1
  132. package/dist/cdn/shared-7e2ea44c.js +1 -0
  133. package/dist/cdn/{shared-bb522838.js → shared-7ed14dc8.js} +1 -1
  134. package/dist/cdn/shared-839dd3a8.js +1 -0
  135. package/dist/cdn/{shared-da6cc488.js → shared-862b436d.js} +1 -1
  136. package/dist/cdn/{shared-b0a6d48f.js → shared-873b14d1.js} +1 -1
  137. package/dist/cdn/{shared-5b55627c.js → shared-875748d8.js} +1 -1
  138. package/dist/cdn/{shared-2d3027f4.js → shared-8b6addec.js} +1 -1
  139. package/dist/cdn/{shared-07fb5be2.js → shared-90b8ef49.js} +1 -1
  140. package/dist/cdn/{shared-b7f7f15f.js → shared-9923f00e.js} +1 -1
  141. package/dist/cdn/{shared-b28dbc68.js → shared-9c3934c8.js} +1 -1
  142. package/dist/cdn/{shared-6b8874a7.js → shared-9cba1b0e.js} +1 -1
  143. package/dist/cdn/{shared-aebbceea.js → shared-a2e9009b.js} +1 -1
  144. package/dist/cdn/{shared-d43fc5cc.js → shared-a696c602.js} +1 -1
  145. package/dist/cdn/shared-a85afa33.js +1 -0
  146. package/dist/cdn/{shared-e396ec04.js → shared-ab687b1e.js} +1 -1
  147. package/dist/cdn/{shared-c484320b.js → shared-aef0c294.js} +1 -1
  148. package/dist/cdn/shared-b51997d1.js +1 -0
  149. package/dist/cdn/{shared-8a5e01ae.js → shared-b90ddfc1.js} +1 -1
  150. package/dist/cdn/shared-bcc6e13b.js +1 -0
  151. package/dist/cdn/{shared-b8e9b536.js → shared-bfc37e75.js} +1 -1
  152. package/dist/cdn/{shared-6d2064e9.js → shared-c434e6d6.js} +3 -3
  153. package/dist/cdn/{shared-ce1ae7e1.js → shared-cce2fc5a.js} +1 -1
  154. package/dist/cdn/{shared-1f0841ec.js → shared-cd6381a5.js} +1 -1
  155. package/dist/cdn/{shared-a86761d3.js → shared-cef7c63d.js} +2 -2
  156. package/dist/cdn/{shared-7b167fe9.js → shared-cfae0154.js} +1 -1
  157. package/dist/cdn/{shared-98652709.js → shared-d34586cb.js} +1 -1
  158. package/dist/cdn/shared-d4f80692.js +1 -0
  159. package/dist/cdn/{shared-2c842660.js → shared-d7e653ae.js} +1 -1
  160. package/dist/cdn/shared-d8b07f4f.js +1 -0
  161. package/dist/cdn/{shared-85f9051e.js → shared-db61a5e8.js} +1 -1
  162. package/dist/cdn/{shared-b0ff4590.js → shared-ddf10c04.js} +1 -1
  163. package/dist/cdn/{shared-d302ad2c.js → shared-ea67b3f3.js} +1 -1
  164. package/dist/cdn/translations/admin-subscription-card/en.json +27 -0
  165. package/dist/cdn/translations/applied-coupon-code-card/en.json +7 -0
  166. package/dist/cdn/translations/applied-coupon-code-form/en.json +26 -0
  167. package/dist/cdn/translations/cart-card/en.json +15 -0
  168. package/dist/cdn/translations/cart-form/en.json +762 -0
  169. package/dist/cdn/translations/coupon-card/en.json +2 -2
  170. package/dist/cdn/translations/customer-portal/en.json +9 -9
  171. package/dist/cdn/translations/subscription-form/en.json +116 -21
  172. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +2 -0
  173. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +4 -0
  174. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -1
  175. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +3 -3
  176. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +12 -10
  177. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  178. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +1 -1
  179. package/dist/elements/internal/InternalAsyncListControl/index.js +1 -1
  180. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  181. package/dist/elements/internal/InternalCard/InternalCard.d.ts +1 -0
  182. package/dist/elements/internal/InternalCard/InternalCard.js +12 -4
  183. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  184. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +2 -1
  185. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
  186. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +6 -1
  187. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +21 -0
  188. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
  189. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -0
  190. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +6 -0
  191. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  192. package/dist/elements/private/Dialog/Dialog.js +1 -0
  193. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  194. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.d.ts +40 -0
  195. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +304 -0
  196. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -0
  197. package/dist/elements/public/AdminSubscriptionCard/index.d.ts +4 -0
  198. package/dist/elements/public/AdminSubscriptionCard/index.js +6 -0
  199. package/dist/elements/public/AdminSubscriptionCard/index.js.map +1 -0
  200. package/dist/elements/public/AdminSubscriptionCard/types.d.ts +9 -0
  201. package/dist/elements/public/AdminSubscriptionCard/types.js +2 -0
  202. package/dist/elements/public/AdminSubscriptionCard/types.js.map +1 -0
  203. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.d.ts +11 -0
  204. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js +33 -0
  205. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js.map +1 -0
  206. package/dist/elements/public/AppliedCouponCodeCard/index.d.ts +4 -0
  207. package/dist/elements/public/AppliedCouponCodeCard/index.js +6 -0
  208. package/dist/elements/public/AppliedCouponCodeCard/index.js.map +1 -0
  209. package/dist/elements/public/AppliedCouponCodeCard/types.d.ts +3 -0
  210. package/dist/elements/public/AppliedCouponCodeCard/types.js +2 -0
  211. package/dist/elements/public/AppliedCouponCodeCard/types.js.map +1 -0
  212. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.d.ts +18 -0
  213. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js +54 -0
  214. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js.map +1 -0
  215. package/dist/elements/public/AppliedCouponCodeForm/index.d.ts +5 -0
  216. package/dist/elements/public/AppliedCouponCodeForm/index.js +7 -0
  217. package/dist/elements/public/AppliedCouponCodeForm/index.js.map +1 -0
  218. package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +5 -0
  219. package/dist/elements/public/AppliedCouponCodeForm/types.js +2 -0
  220. package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -0
  221. package/dist/elements/public/AttributeCard/AttributeCard.js +5 -4
  222. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  223. package/dist/elements/public/CartCard/CartCard.d.ts +42 -0
  224. package/dist/elements/public/CartCard/CartCard.js +264 -0
  225. package/dist/elements/public/CartCard/CartCard.js.map +1 -0
  226. package/dist/elements/public/CartCard/index.d.ts +5 -0
  227. package/dist/elements/public/CartCard/index.js +7 -0
  228. package/dist/elements/public/CartCard/index.js.map +1 -0
  229. package/dist/elements/public/CartCard/types.d.ts +5 -0
  230. package/dist/elements/public/CartCard/types.js +2 -0
  231. package/dist/elements/public/CartCard/types.js.map +1 -0
  232. package/dist/elements/public/CartForm/CartForm.d.ts +59 -0
  233. package/dist/elements/public/CartForm/CartForm.js +603 -0
  234. package/dist/elements/public/CartForm/CartForm.js.map +1 -0
  235. package/dist/elements/public/CartForm/index.d.ts +19 -0
  236. package/dist/elements/public/CartForm/index.js +21 -0
  237. package/dist/elements/public/CartForm/index.js.map +1 -0
  238. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.d.ts +10 -0
  239. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js +83 -0
  240. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js.map +1 -0
  241. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.d.ts +4 -0
  242. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js +6 -0
  243. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js.map +1 -0
  244. package/dist/elements/public/CartForm/types.d.ts +3 -0
  245. package/dist/elements/public/CartForm/types.js +2 -0
  246. package/dist/elements/public/CartForm/types.js.map +1 -0
  247. package/dist/elements/public/CollectionPage/CollectionPage.js +11 -8
  248. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  249. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +5 -4
  250. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  251. package/dist/elements/public/CustomerCard/CustomerCard.js +1 -1
  252. package/dist/elements/public/CustomerCard/CustomerCard.js.map +1 -1
  253. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +3 -1
  254. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  255. package/dist/elements/public/DiscountCard/DiscountCard.js +2 -1
  256. package/dist/elements/public/DiscountCard/DiscountCard.js.map +1 -1
  257. package/dist/elements/public/GiftCardCard/GiftCardCard.js +2 -2
  258. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -1
  259. package/dist/elements/public/IntegrationCard/IntegrationCard.js +2 -2
  260. package/dist/elements/public/IntegrationCard/IntegrationCard.js.map +1 -1
  261. package/dist/elements/public/ItemCard/ItemCard.d.ts +26 -4
  262. package/dist/elements/public/ItemCard/ItemCard.js +216 -27
  263. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  264. package/dist/elements/public/ItemCard/index.d.ts +1 -0
  265. package/dist/elements/public/ItemCard/index.js +1 -0
  266. package/dist/elements/public/ItemCard/index.js.map +1 -1
  267. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.d.ts +3 -1
  268. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js +4 -3
  269. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js.map +1 -1
  270. package/dist/elements/public/ItemForm/ItemForm.d.ts +3 -0
  271. package/dist/elements/public/ItemForm/ItemForm.js +58 -8
  272. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  273. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +25 -5
  274. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +200 -17
  275. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -1
  276. package/dist/elements/public/ItemOptionCard/index.d.ts +1 -0
  277. package/dist/elements/public/ItemOptionCard/index.js +1 -0
  278. package/dist/elements/public/ItemOptionCard/index.js.map +1 -1
  279. package/dist/elements/public/NucleonElement/NucleonElement.js +25 -14
  280. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  281. package/dist/elements/public/Pagination/Pagination.js +2 -2
  282. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  283. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  284. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  285. package/dist/elements/public/SubscriptionForm/SubscriptionForm.d.ts +46 -14
  286. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +300 -156
  287. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  288. package/dist/elements/public/SubscriptionForm/index.d.ts +9 -4
  289. package/dist/elements/public/SubscriptionForm/index.js +9 -4
  290. package/dist/elements/public/SubscriptionForm/index.js.map +1 -1
  291. package/dist/elements/public/SubscriptionForm/types.d.ts +2 -5
  292. package/dist/elements/public/SubscriptionForm/types.js.map +1 -1
  293. package/dist/elements/public/TransactionCard/TransactionCard.js +1 -1
  294. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  295. package/dist/elements/public/index.d.ts +5 -0
  296. package/dist/elements/public/index.defined.d.ts +5 -0
  297. package/dist/elements/public/index.defined.js +5 -0
  298. package/dist/elements/public/index.defined.js.map +1 -1
  299. package/dist/elements/public/index.js +5 -0
  300. package/dist/elements/public/index.js.map +1 -1
  301. package/dist/mixins/themeable.js +29 -8
  302. package/dist/mixins/themeable.js.map +1 -1
  303. package/package.json +1 -1
  304. package/dist/cdn/shared-1b3e1a0d.js +0 -1
  305. package/dist/cdn/shared-210387cb.js +0 -1
  306. package/dist/cdn/shared-222fe491.js +0 -1
  307. package/dist/cdn/shared-515f00b1.js +0 -1
  308. package/dist/cdn/shared-5643d0ed.js +0 -1
  309. package/dist/cdn/shared-62c8cfa2.js +0 -60
  310. package/dist/cdn/shared-6b622399.js +0 -1
  311. package/dist/cdn/shared-92926b1d.js +0 -1
  312. package/dist/cdn/shared-b7219771.js +0 -1
  313. package/dist/cdn/shared-dc798bf4.js +0 -1
  314. package/dist/cdn/shared-e08bcb6c.js +0 -1
  315. package/dist/cdn/shared-fdac2851.js +0 -1
@@ -1,19 +1,16 @@
1
1
  import { Choice, Group, Skeleton } from "../../private/index.js";
2
2
  import { ScopedElementsMixin } from '@open-wc/scoped-elements';
3
- import { html } from 'lit-html';
4
- import { getAllowedFrequencies, getNextTransactionDateConstraints, isNextTransactionDate, } from '@foxy.io/sdk/customer';
5
- import { ConfigurableMixin } from "../../../mixins/configurable.js";
6
- import { NucleonElement } from "../NucleonElement/index.js";
7
- import { Preview } from "../ItemsForm/private/Preview.js";
8
- import { ThemeableMixin } from "../../../mixins/themeable.js";
9
- import { TransactionsTable } from "../TransactionsTable/TransactionsTable.js";
10
3
  import { TranslatableMixin } from "../../../mixins/translatable.js";
11
- import { classMap } from "../../../utils/class-map.js";
12
- import { ifDefined } from 'lit-html/directives/if-defined';
4
+ import { BooleanSelector } from '@foxy.io/sdk/core';
5
+ import { ResponsiveMixin } from "../../../mixins/responsive.js";
13
6
  import { parseFrequency } from "../../../utils/parse-frequency.js";
14
7
  import { serializeDate } from "../../../utils/serialize-date.js";
8
+ import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
9
+ import { ifDefined } from 'lit-html/directives/if-defined';
10
+ import { html } from 'lit-html';
11
+ import { getNextTransactionDateConstraints, getAllowedFrequencies, isNextTransactionDate, } from '@foxy.io/sdk/customer';
15
12
  const NS = 'subscription-form';
16
- const Base = ScopedElementsMixin(ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS))));
13
+ const Base = ScopedElementsMixin(ResponsiveMixin(TranslatableMixin(InternalForm, NS)));
17
14
  /**
18
15
  * Form element for creating or editing subscriptions.
19
16
  *
@@ -37,14 +34,38 @@ const Base = ScopedElementsMixin(ThemeableMixin(ConfigurableMixin(TranslatableMi
37
34
  * @slot transactions:before - **new in v1.4.0**
38
35
  * @slot transactions:after - **new in v1.4.0**
39
36
  *
37
+ * @slot attributes:before - **new in v1.20.0**
38
+ * @slot attributes:after - **new in v1.20.0**
39
+ *
40
+ * @slot timestamps:before - **new in v1.20.0**
41
+ * @slot timestamps:after - **new in v1.20.0**
42
+ *
43
+ * @slot past-due-amount:before - **new in v1.20.0**
44
+ * @slot past-due-amount:after - **new in v1.20.0**
45
+ *
46
+ * @slot start-date:before - **new in v1.20.0**
47
+ * @slot start-date:after - **new in v1.20.0**
48
+ *
40
49
  * @element foxy-subscription-form
41
50
  * @since 1.2.0
42
51
  */
43
52
  export class SubscriptionForm extends Base {
44
53
  constructor() {
45
54
  super(...arguments);
46
- this.settings = null;
55
+ this.getTransactionPageHref = (_, data) => {
56
+ return data === null || data === void 0 ? void 0 : data._links['fx:receipt'].href;
57
+ };
58
+ this.customerAddresses = null;
59
+ this.itemCategories = null;
60
+ this.localeCodes = null;
47
61
  this.templates = {};
62
+ this.settings = null;
63
+ this.coupons = null;
64
+ this.__transactionTemplateLoaderId = 'transactionTemplateLoader';
65
+ this.__defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';
66
+ this.__localeCodesHelperLoaderId = 'localeCodesLoader';
67
+ this.__templateSetLoaderId = 'templateSetLoader';
68
+ this.__storeLoaderId = 'storeLoader';
48
69
  this.__renderHeaderSubtitle = () => {
49
70
  var _a;
50
71
  const { data, lang, ns } = this;
@@ -91,16 +112,22 @@ export class SubscriptionForm extends Base {
91
112
  }
92
113
  return html `<x-skeleton class="w-full" variant="static">&nbsp;</x-skeleton>`;
93
114
  };
94
- this.__renderHeaderTitle = () => {
115
+ this.__renderHeaderTitle = (currency, currencyDisplay) => {
95
116
  const { data, lang, ns } = this;
96
117
  if (data) {
97
118
  const frequency = parseFrequency(data.frequency);
98
- const currency = data._embedded['fx:last_transaction'].currency_code;
99
- const total = data._embedded['fx:last_transaction'].total_order;
119
+ const transactionTemplate = this.__transactionTemplate;
120
+ const total = transactionTemplate === null || transactionTemplate === void 0 ? void 0 : transactionTemplate.total_order;
121
+ if (typeof currency !== 'string')
122
+ return html `--`;
100
123
  return html `
101
124
  <foxy-i18n
102
125
  data-testid="header-title"
103
- options=${JSON.stringify({ ...frequency, amount: `${total} ${currency}` })}
126
+ options=${JSON.stringify({
127
+ ...frequency,
128
+ amount: `${total} ${currency}`,
129
+ currencyDisplay,
130
+ })}
104
131
  lang=${lang}
105
132
  key="price_${data.frequency === '.5m' ? 'twice_a_month' : 'recurring'}"
106
133
  ns=${ns}
@@ -110,11 +137,13 @@ export class SubscriptionForm extends Base {
110
137
  }
111
138
  return html `<x-skeleton class="w-full" variant="static">&nbsp;</x-skeleton>`;
112
139
  };
113
- this.__renderHeader = () => {
140
+ this.__renderHeader = (currencyCode, currencyDisplay) => {
114
141
  return html `
115
- <div data-testid="header">
142
+ <div data-testid="header" class="sm-col-span-2">
116
143
  ${this.renderTemplateOrSlot('header:before')}
117
- <div class="leading-xs text-xxl font-bold">${this.__renderHeaderTitle()}</div>
144
+ <div class="leading-xs text-xxl font-bold truncate">
145
+ ${this.__renderHeaderTitle(currencyCode, currencyDisplay)}
146
+ </div>
118
147
  <div class="leading-xs text-l">${this.__renderHeaderSubtitle()}</div>
119
148
  ${this.renderTemplateOrSlot('header:after')}
120
149
  </div>
@@ -127,7 +156,7 @@ export class SubscriptionForm extends Base {
127
156
 
128
157
  <foxy-i18n
129
158
  data-testid="items:actions-label"
130
- class="flex-1"
159
+ class="flex-1 text-s font-medium text-secondary"
131
160
  lang=${this.lang}
132
161
  key="item_plural"
133
162
  ns=${this.ns}
@@ -138,59 +167,29 @@ export class SubscriptionForm extends Base {
138
167
  </div>
139
168
  `;
140
169
  };
141
- this.__renderItemsItem = (item) => {
142
- const price = item.price.toLocaleString(this.lang || 'en', {
143
- style: 'currency',
144
- currency: this.data._embedded['fx:last_transaction'].currency_code,
145
- });
146
- let quantity;
147
- if (item.quantity > 1) {
148
- quantity = html `
149
- <div
150
- data-testclass="item-quantity"
151
- class="px-s h-xs rounded bg-contrast-5 flex items-center font-tnum text-contrast text-s font-bold"
152
- >
153
- ${item.quantity}
154
- </div>
155
- `;
170
+ this.__renderItems = () => {
171
+ var _a;
172
+ let itemsHref;
173
+ try {
174
+ const cart = this.__transactionTemplate;
175
+ const url = new URL((_a = cart === null || cart === void 0 ? void 0 : cart._links['fx:items'].href) !== null && _a !== void 0 ? _a : '');
176
+ url.searchParams.set('zoom', 'item_options');
177
+ itemsHref = url.toString();
156
178
  }
157
- else {
158
- quantity = html ``;
179
+ catch (_b) {
180
+ itemsHref = undefined;
159
181
  }
160
182
  return html `
161
- <figure class="flex items-center space-x-m py-s pr-m" data-testclass="item">
162
- <x-preview
163
- data-testclass="item-preview"
164
- class="w-l h-l"
165
- .quantity=${item.quantity}
166
- .image=${item.image}
167
- >
168
- </x-preview>
183
+ <div data-testid="items" class="space-y-xs sm-col-span-2">
184
+ ${this.hiddenSelector.matches('items:actions', true) ? '' : this.__renderItemsActions()}
169
185
 
170
- <figcaption class="leading-s flex-1 flex justify-between items-center">
171
- <div class="flex flex-col">
172
- <span class="font-medium" data-testclass="item-name">${item.name}</span>
173
- <span class="text-secondary text-s" data-testclass="item-price">${price}</span>
174
- </div>
175
-
176
- ${quantity}
177
- </figcaption>
178
- </figure>
179
- `;
180
- };
181
- this.__renderItems = () => {
182
- var _a, _b;
183
- const hiddenSelector = this.hiddenSelector;
184
- const items = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._embedded['fx:transaction_template']._embedded['fx:items']) !== null && _b !== void 0 ? _b : [];
185
- const label = hiddenSelector.matches('items:actions', true) ? '' : this.__renderItemsActions();
186
- return html `
187
- <div data-testid="items">
188
- ${this.renderTemplateOrSlot('items:before')}
189
- <x-group frame>
190
- <div slot="header">${label}</div>
191
- <div class="divide-y divide-contrast-10 pl-s">${items.map(this.__renderItemsItem)}</div>
192
- </x-group>
193
- ${this.renderTemplateOrSlot('items:after')}
186
+ <foxy-internal-async-list-control
187
+ first=${ifDefined(itemsHref)}
188
+ limit="5"
189
+ infer="items"
190
+ item="foxy-item-card"
191
+ >
192
+ </foxy-internal-async-list-control>
194
193
  </div>
195
194
  `;
196
195
  };
@@ -198,7 +197,7 @@ export class SubscriptionForm extends Base {
198
197
  const { disabledSelector, lang, ns } = this;
199
198
  const formHiddenSelector = this.hiddenSelector.zoom('end-date:form').toString();
200
199
  return html `
201
- <div>
200
+ <div class="sm-col-span-2">
202
201
  ${this.renderTemplateOrSlot('end-date:before')}
203
202
 
204
203
  <foxy-form-dialog
@@ -243,6 +242,36 @@ export class SubscriptionForm extends Base {
243
242
  }
244
243
  return date.getTime() >= Date.now();
245
244
  };
245
+ this.__checkStartDateAvailability = (date) => {
246
+ return date.getTime() >= Date.now();
247
+ };
248
+ this.__renderStartDate = () => {
249
+ const { data, lang, ns } = this;
250
+ return html `
251
+ <div data-testid="start-date">
252
+ ${this.renderTemplateOrSlot('start-date:before')}
253
+
254
+ <x-group frame>
255
+ <foxy-i18n key="start_date" ns=${ns} lang=${lang} slot="header"></foxy-i18n>
256
+ <foxy-internal-calendar
257
+ start=${ifDefined(data === null || data === void 0 ? void 0 : data.start_date.substr(0, 10))}
258
+ value=${ifDefined(data === null || data === void 0 ? void 0 : data.start_date)}
259
+ lang=${lang}
260
+ ?readonly=${!this.__isStartDateEditable}
261
+ ?disabled=${this.disabledSelector.matches('start-date', true)}
262
+ .checkAvailability=${this.__checkStartDateAvailability}
263
+ @change=${(evt) => {
264
+ const target = evt.target;
265
+ this.edit({ start_date: target.value });
266
+ }}
267
+ >
268
+ </foxy-internal-calendar>
269
+ </x-group>
270
+
271
+ ${this.renderTemplateOrSlot('start-date:after')}
272
+ </div>
273
+ `;
274
+ };
246
275
  this.__renderNextTransactionDate = () => {
247
276
  const { data, lang, ns } = this;
248
277
  const isActive = !!(data === null || data === void 0 ? void 0 : data.is_active);
@@ -333,75 +362,21 @@ export class SubscriptionForm extends Base {
333
362
  };
334
363
  this.__renderFrequency = () => {
335
364
  return html `
336
- <div>
365
+ <div class="sm-col-span-2">
337
366
  ${this.renderTemplateOrSlot('frequency:before')}
338
367
  ${this.settings && this.__frequencies.length > 4
339
368
  ? this.__renderFrequencyAsDropdown()
340
369
  : this.__renderFrequencyAsRadioList()}
341
370
  ${this.renderTemplateOrSlot('frequency:after')}
342
371
  </div>
343
- `;
344
- };
345
- this.__transactionsTableColumns = [
346
- {
347
- cell(ctx) {
348
- var _a;
349
- const colors = {
350
- declined: 'text-error',
351
- rejected: 'text-error',
352
- };
353
- const status = TransactionsTable.statusColumn.cell(ctx);
354
- const price = TransactionsTable.priceColumn.cell(ctx);
355
- const color = (_a = colors[ctx.data.status]) !== null && _a !== void 0 ? _a : 'text-body';
356
- return ctx.html `
357
- <span class="sr-only">${status}</span>
358
- <span class="${color} text-s">${price}</span>
359
- `;
360
- },
361
- },
362
- { cell: TransactionsTable.idColumn.cell, hideBelow: 'sm' },
363
- { cell: TransactionsTable.dateColumn.cell },
364
- { cell: TransactionsTable.receiptColumn.cell },
365
- ];
366
- this.__renderTransactionsPage = ({ html, ...ctx }) => {
367
- return html `
368
- <foxy-table
369
- group=${ctx.group}
370
- lang=${ctx.lang}
371
- href=${ctx.href}
372
- ns="${ctx.ns} transactions-table"
373
- .columns=${this.__transactionsTableColumns}
374
- >
375
- </foxy-table>
376
- `;
377
- };
378
- this.__renderTransactions = () => {
379
- var _a, _b;
380
- const { lang, ns } = this;
381
- return html `
382
- <div data-testid="transactions">
383
- ${this.renderTemplateOrSlot('transactions:before')}
384
-
385
- <x-group frame>
386
- <foxy-i18n lang=${lang} slot="header" key="transaction_plural" ns=${ns}></foxy-i18n>
387
- <foxy-collection-pages
388
- group=${this.group}
389
- class="block divide-y divide-contrast-10 px-m"
390
- first=${(_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transactions'].href) !== null && _b !== void 0 ? _b : ''}
391
- lang=${lang}
392
- ns=${ns}
393
- .page=${this.__renderTransactionsPage}
394
- >
395
- </foxy-collection-pages>
396
- </x-group>
397
-
398
- ${this.renderTemplateOrSlot('transactions:after')}
399
- </div>
400
372
  `;
401
373
  };
402
374
  }
403
375
  static get scopedElements() {
404
376
  return {
377
+ 'foxy-internal-timestamps-control': customElements.get('foxy-internal-timestamps-control'),
378
+ 'foxy-internal-async-list-control': customElements.get('foxy-internal-async-list-control'),
379
+ 'foxy-internal-number-control': customElements.get('foxy-internal-number-control'),
405
380
  'foxy-internal-calendar': customElements.get('foxy-internal-calendar'),
406
381
  'foxy-collection-pages': customElements.get('foxy-collection-pages'),
407
382
  'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),
@@ -409,12 +384,12 @@ export class SubscriptionForm extends Base {
409
384
  'foxy-form-dialog': customElements.get('foxy-form-dialog'),
410
385
  'vaadin-button': customElements.get('vaadin-button'),
411
386
  'foxy-spinner': customElements.get('foxy-spinner'),
387
+ 'foxy-nucleon': customElements.get('foxy-nucleon'),
412
388
  'vcf-tooltip': customElements.get('vcf-tooltip'),
413
389
  'foxy-table': customElements.get('foxy-table'),
414
390
  'foxy-i18n': customElements.get('foxy-i18n'),
415
391
  'iron-icon': customElements.get('iron-icon'),
416
392
  'x-skeleton': Skeleton,
417
- 'x-preview': Preview,
418
393
  'x-choice': Choice,
419
394
  'x-group': Group,
420
395
  };
@@ -422,46 +397,197 @@ export class SubscriptionForm extends Base {
422
397
  static get properties() {
423
398
  return {
424
399
  ...super.properties,
400
+ getTransactionPageHref: { attribute: false },
401
+ customerAddresses: { attribute: 'customer-addresses' },
402
+ itemCategories: { attribute: 'item-categories' },
403
+ localeCodes: { attribute: 'locale-codes' },
425
404
  settings: { type: Object },
405
+ coupons: {},
426
406
  };
427
407
  }
428
- render() {
429
- var _a, _b;
430
- const isBusy = this.in('busy');
431
- const isFail = this.in('fail');
408
+ get hiddenSelector() {
409
+ return new BooleanSelector(`items:pagination:card:autorenew-icon ${super.hiddenSelector}`);
410
+ }
411
+ renderBody() {
412
+ var _a, _b, _c, _d, _e, _f, _g, _h;
413
+ let transactionsHref;
414
+ try {
415
+ const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transactions'].href) !== null && _b !== void 0 ? _b : '');
416
+ url.searchParams.set('order', 'transaction_date desc');
417
+ url.searchParams.set('zoom', 'items');
418
+ transactionsHref = url.toString();
419
+ }
420
+ catch (_j) {
421
+ transactionsHref = undefined;
422
+ }
423
+ const currencyDisplay = ((_c = this.__store) === null || _c === void 0 ? void 0 : _c.use_international_currency_symbol) ? 'code' : 'symbol';
424
+ const cart = this.__transactionTemplate;
425
+ let currencyCode = null;
426
+ if (cart && 'currency_code' in cart) {
427
+ // TODO: remove the directive below once the SDK is updated
428
+ // @ts-expect-error SDK types are incomplete
429
+ currencyCode = cart.currency_code;
430
+ }
431
+ else {
432
+ const allLocaleCodes = this.__localeCodesHelper;
433
+ const localeCode = (_e = ((_d = this.__templateSet) !== null && _d !== void 0 ? _d : this.__defaultTemplateSet)) === null || _e === void 0 ? void 0 : _e.locale_code;
434
+ const localeInfo = localeCode ? allLocaleCodes === null || allLocaleCodes === void 0 ? void 0 : allLocaleCodes.values[localeCode] : void 0;
435
+ if (localeInfo)
436
+ currencyCode = (_g = (_f = /Currency: ([A-Z]{3})/g.exec(localeInfo)) === null || _f === void 0 ? void 0 : _f[1]) !== null && _g !== void 0 ? _g : null;
437
+ }
432
438
  return html `
433
- <div
434
- data-testid="wrapper"
435
- aria-busy=${isBusy}
436
- aria-live="polite"
437
- class="relative space-y-l text-body font-lumo text-m leading-m"
439
+ <foxy-nucleon
440
+ class="hidden"
441
+ infer=""
442
+ href=${ifDefined(this.__transactionTemplateHref)}
443
+ id=${this.__transactionTemplateLoaderId}
444
+ @update=${() => this.requestUpdate()}
445
+ >
446
+ </foxy-nucleon>
447
+
448
+ <foxy-nucleon
449
+ class="hidden"
450
+ infer=""
451
+ href=${ifDefined(this.__defaultTemplateSetHref)}
452
+ id=${this.__defaultTemplateSetLoaderId}
453
+ @update=${() => this.requestUpdate()}
454
+ >
455
+ </foxy-nucleon>
456
+
457
+ <foxy-nucleon
458
+ class="hidden"
459
+ infer=""
460
+ href=${ifDefined(this.__localeCodesHelperHref)}
461
+ id=${this.__localeCodesHelperLoaderId}
462
+ @update=${() => this.requestUpdate()}
463
+ >
464
+ </foxy-nucleon>
465
+
466
+ <foxy-nucleon
467
+ class="hidden"
468
+ infer=""
469
+ href=${ifDefined(this.__templateSetHref)}
470
+ id=${this.__templateSetLoaderId}
471
+ @update=${() => this.requestUpdate()}
472
+ >
473
+ </foxy-nucleon>
474
+
475
+ <foxy-nucleon
476
+ class="hidden"
477
+ infer=""
478
+ href=${ifDefined(this.__storeHref)}
479
+ id=${this.__storeLoaderId}
480
+ @update=${() => this.requestUpdate()}
438
481
  >
439
- ${this.hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}
482
+ </foxy-nucleon>
483
+
484
+ <div class="relative grid grid-cols-1 sm-grid-cols-2 gap-l">
485
+ ${this.hiddenSelector.matches('header', true)
486
+ ? ''
487
+ : this.__renderHeader(currencyCode !== null && currencyCode !== void 0 ? currencyCode : void 0, currencyDisplay)}
440
488
  ${this.hiddenSelector.matches('items', true) ? '' : this.__renderItems()}
441
- ${this.hiddenSelector.matches('end-date', true) ? '' : this.__renderEndDate()}
442
- ${this.__isNextTransactionDateVisible ? this.__renderNextTransactionDate() : ''}
443
489
  ${this.__isFrequencyVisible ? this.__renderFrequency() : ''}
444
- ${this.hiddenSelector.matches('transactions', true) ? '' : this.__renderTransactions()}
490
+ ${this.__isStartDateVisible ? this.__renderStartDate() : ''}
491
+ ${this.__isNextTransactionDateVisible ? this.__renderNextTransactionDate() : ''}
445
492
 
446
- <div
447
- data-testid="spinner"
448
- class=${classMap({
449
- 'transition duration-500 ease-in-out absolute inset-0 flex': true,
450
- 'opacity-0 pointer-events-none': !isBusy && !isFail,
451
- })}
493
+ <foxy-internal-number-control
494
+ suffix=${ifDefined(currencyCode !== null && currencyCode !== void 0 ? currencyCode : void 0)}
495
+ infer="past-due-amount"
496
+ class="sm-col-span-2"
497
+ min="0"
452
498
  >
453
- <foxy-spinner
454
- layout="vertical"
455
- class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l"
456
- state=${isFail ? 'error' : isBusy ? 'busy' : 'empty'}
457
- lang=${this.lang}
458
- ns="${this.ns} ${(_b = (_a = customElements.get('foxy-spinner')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
459
- >
460
- </foxy-spinner>
461
- </div>
499
+ </foxy-internal-number-control>
500
+
501
+ <foxy-internal-async-list-control
502
+ first=${ifDefined((_h = this.data) === null || _h === void 0 ? void 0 : _h._links['fx:attributes'].href)}
503
+ class="sm-col-span-2"
504
+ infer="attributes"
505
+ limit="5"
506
+ form="foxy-attribute-form"
507
+ item="foxy-attribute-card"
508
+ >
509
+ </foxy-internal-async-list-control>
510
+
511
+ <foxy-internal-async-list-control
512
+ first=${ifDefined(transactionsHref)}
513
+ class="sm-col-span-2"
514
+ infer="transactions"
515
+ limit="5"
516
+ item="foxy-transaction-card"
517
+ hide-delete-button
518
+ .getPageHref=${this.getTransactionPageHref}
519
+ >
520
+ </foxy-internal-async-list-control>
521
+
522
+ <foxy-internal-timestamps-control infer="timestamps" class="sm-col-span-2">
523
+ </foxy-internal-timestamps-control>
524
+
525
+ ${this.hiddenSelector.matches('end-date', true) ? '' : this.__renderEndDate()}
462
526
  </div>
463
527
  `;
464
528
  }
529
+ get __transactionTemplateHref() {
530
+ var _a;
531
+ return (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transaction_template'].href;
532
+ }
533
+ get __defaultTemplateSetHref() {
534
+ var _a, _b, _c;
535
+ const templateSetUri = (_a = this.__transactionTemplate) === null || _a === void 0 ? void 0 : _a.template_set_uri;
536
+ if (templateSetUri === '') {
537
+ try {
538
+ const url = new URL((_c = (_b = this.__store) === null || _b === void 0 ? void 0 : _b._links['fx:template_sets'].href) !== null && _c !== void 0 ? _c : '');
539
+ url.searchParams.set('code', 'DEFAULT');
540
+ return url.toString();
541
+ }
542
+ catch (_d) {
543
+ //
544
+ }
545
+ }
546
+ }
547
+ get __localeCodesHelperHref() {
548
+ var _a;
549
+ if (this.__defaultTemplateSetHref || this.__templateSetHref) {
550
+ return (_a = this.localeCodes) !== null && _a !== void 0 ? _a : void 0;
551
+ }
552
+ }
553
+ get __templateSetHref() {
554
+ const cart = this.__transactionTemplate;
555
+ // TODO: remove the directive below once SDK is updated
556
+ // @ts-expect-error SDK types are incomplete
557
+ const currencyCode = cart === null || cart === void 0 ? void 0 : cart.currency_code;
558
+ if (!currencyCode)
559
+ return (cart === null || cart === void 0 ? void 0 : cart.template_set_uri) || void 0;
560
+ }
561
+ get __storeHref() {
562
+ var _a, _b;
563
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:store']) === null || _b === void 0 ? void 0 : _b.href;
564
+ }
565
+ get __transactionTemplate() {
566
+ var _a, _b;
567
+ const selector = `#${this.__transactionTemplateLoaderId}`;
568
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
569
+ }
570
+ get __defaultTemplateSet() {
571
+ var _a, _b;
572
+ const selector = `#${this.__defaultTemplateSetLoaderId}`;
573
+ const loader = this.renderRoot.querySelector(selector);
574
+ return (_b = (_a = loader === null || loader === void 0 ? void 0 : loader.data) === null || _a === void 0 ? void 0 : _a._embedded['fx:template_sets'][0]) !== null && _b !== void 0 ? _b : null;
575
+ }
576
+ get __localeCodesHelper() {
577
+ var _a, _b;
578
+ const selector = `#${this.__localeCodesHelperLoaderId}`;
579
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
580
+ }
581
+ get __templateSet() {
582
+ var _a, _b;
583
+ const selector = `#${this.__templateSetLoaderId}`;
584
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
585
+ }
586
+ get __store() {
587
+ var _a, _b;
588
+ const selector = `#${this.__storeLoaderId}`;
589
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
590
+ }
465
591
  get __isNextTransactionDateVisible() {
466
592
  if (this.hiddenSelector.matches('next-transaction-date', true))
467
593
  return false;
@@ -476,6 +602,24 @@ export class SubscriptionForm extends Base {
476
602
  const rules = this.settings.subscriptions.allow_next_date_modification;
477
603
  return !!getNextTransactionDateConstraints(this.data, rules);
478
604
  }
605
+ get __isStartDateVisible() {
606
+ if (this.hiddenSelector.matches('start-date', true))
607
+ return false;
608
+ return this.__isNextTransactionDateVisible;
609
+ }
610
+ get __isStartDateEditable() {
611
+ if (this.readonlySelector.matches('start-date', true))
612
+ return false;
613
+ if (this.data === null)
614
+ return false;
615
+ if (this.data.end_date && new Date(this.data.end_date) <= new Date())
616
+ return false;
617
+ if (this.data.is_active === false)
618
+ return false;
619
+ if (this.data.start_date && new Date(this.data.start_date) <= new Date())
620
+ return false;
621
+ return this.settings === null;
622
+ }
479
623
  get __isFrequencyVisible() {
480
624
  if (this.hiddenSelector.matches('frequency', true))
481
625
  return false;