@foxy.io/elements 1.28.0 → 1.29.0-beta.1

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 (323) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +5 -5
  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 +57 -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-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  25. package/dist/cdn/foxy-coupon-form.js +1 -1
  26. package/dist/cdn/foxy-custom-field-card.js +1 -1
  27. package/dist/cdn/foxy-custom-field-form.js +1 -1
  28. package/dist/cdn/foxy-customer-api.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +2 -2
  34. package/dist/cdn/foxy-customer.js +4 -4
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +1 -1
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +2 -2
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +3 -3
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-nucleon-element.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-payments-api.js +1 -1
  82. package/dist/cdn/foxy-query-builder.js +1 -1
  83. package/dist/cdn/foxy-report-form.js +1 -1
  84. package/dist/cdn/foxy-reports-table.js +5 -5
  85. package/dist/cdn/foxy-shipment-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  89. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  90. package/dist/cdn/foxy-sign-in-form.js +1 -1
  91. package/dist/cdn/foxy-spinner.js +2 -2
  92. package/dist/cdn/foxy-store-card.js +1 -1
  93. package/dist/cdn/foxy-store-form.js +1 -1
  94. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  95. package/dist/cdn/foxy-subscription-card.js +1 -1
  96. package/dist/cdn/foxy-subscription-form.js +1 -1
  97. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  98. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  99. package/dist/cdn/foxy-table.js +1 -1
  100. package/dist/cdn/foxy-tax-card.js +1 -1
  101. package/dist/cdn/foxy-tax-form.js +1 -1
  102. package/dist/cdn/foxy-template-config-form.js +1 -1
  103. package/dist/cdn/foxy-template-form.js +1 -1
  104. package/dist/cdn/foxy-template-set-card.js +1 -1
  105. package/dist/cdn/foxy-template-set-form.js +1 -1
  106. package/dist/cdn/foxy-transaction-card.js +1 -1
  107. package/dist/cdn/foxy-transaction.js +1 -1
  108. package/dist/cdn/foxy-transactions-table.js +7 -7
  109. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  110. package/dist/cdn/foxy-user-card.js +1 -1
  111. package/dist/cdn/foxy-user-form.js +1 -1
  112. package/dist/cdn/foxy-users-table.js +1 -1
  113. package/dist/cdn/foxy-webhook-card.js +1 -1
  114. package/dist/cdn/foxy-webhook-form.js +1 -1
  115. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  116. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  117. package/dist/cdn/{shared-c2128988.js → shared-01b2cad8.js} +1 -1
  118. package/dist/cdn/{shared-a05fe56c.js → shared-02d9cca5.js} +1 -1
  119. package/dist/cdn/{shared-57e4bcb0.js → shared-06119334.js} +1 -1
  120. package/dist/cdn/{shared-23061fb2.js → shared-088655e0.js} +1 -1
  121. package/dist/cdn/{shared-fee535ca.js → shared-0b01f721.js} +1 -1
  122. package/dist/cdn/{shared-f300193c.js → shared-0b5eb6d1.js} +1 -1
  123. package/dist/cdn/{shared-701157ac.js → shared-0f6e4584.js} +1 -1
  124. package/dist/cdn/{shared-293f9c07.js → shared-1101a938.js} +1 -1
  125. package/dist/cdn/{shared-042969fe.js → shared-12a7a15d.js} +1 -1
  126. package/dist/cdn/{shared-b44cf5a9.js → shared-1a6877b1.js} +1 -1
  127. package/dist/cdn/shared-248c08ac.js +1 -0
  128. package/dist/cdn/{shared-cbeb8587.js → shared-24d71d01.js} +1 -1
  129. package/dist/cdn/{shared-b3681c71.js → shared-2ae42363.js} +1 -1
  130. package/dist/cdn/{shared-44b101d0.js → shared-30792d92.js} +1 -1
  131. package/dist/cdn/shared-30e7450c.js +1 -0
  132. package/dist/cdn/{shared-414a0c9b.js → shared-39c40d76.js} +1 -1
  133. package/dist/cdn/{shared-58095d4b.js → shared-3df30d85.js} +1 -1
  134. package/dist/cdn/shared-3f0e394a.js +1 -0
  135. package/dist/cdn/{shared-a08d509a.js → shared-4b7f8c12.js} +1 -1
  136. package/dist/cdn/{shared-32cac4bd.js → shared-4f0975c8.js} +3 -3
  137. package/dist/cdn/{shared-80c6f97e.js → shared-4feadd89.js} +1 -1
  138. package/dist/cdn/{shared-a28c9952.js → shared-509a1775.js} +1 -1
  139. package/dist/cdn/{shared-baaa1e47.js → shared-50db6104.js} +1 -1
  140. package/dist/cdn/{shared-ecec6a10.js → shared-522a172d.js} +1 -1
  141. package/dist/cdn/{shared-fad783a0.js → shared-5318a742.js} +1 -1
  142. package/dist/cdn/shared-55b621e8.js +1 -0
  143. package/dist/cdn/{shared-fd410dee.js → shared-5860410a.js} +1 -1
  144. package/dist/cdn/{shared-484b31eb.js → shared-59978b05.js} +1 -1
  145. package/dist/cdn/{shared-ae200b9f.js → shared-5ec4c4b3.js} +1 -1
  146. package/dist/cdn/shared-61c0bc51.js +1 -0
  147. package/dist/cdn/{shared-850e441a.js → shared-6271dae8.js} +1 -1
  148. package/dist/cdn/shared-6474675f.js +1 -0
  149. package/dist/cdn/{shared-e4cc1191.js → shared-64d3d924.js} +1 -1
  150. package/dist/cdn/shared-64fcd0da.js +1 -0
  151. package/dist/cdn/{shared-25c57c74.js → shared-665965d3.js} +1 -1
  152. package/dist/cdn/{shared-4761504a.js → shared-67aa8143.js} +1 -1
  153. package/dist/cdn/{shared-059680a0.js → shared-69a37aba.js} +1 -1
  154. package/dist/cdn/{shared-bb35ee61.js → shared-6ac0d05e.js} +1 -1
  155. package/dist/cdn/{shared-7063f5af.js → shared-6d645dc5.js} +1 -1
  156. package/dist/cdn/{shared-c0e56e97.js → shared-704ad583.js} +1 -1
  157. package/dist/cdn/{shared-add044d3.js → shared-70d41727.js} +1 -1
  158. package/dist/cdn/{shared-6d1556a0.js → shared-730e6ac7.js} +1 -1
  159. package/dist/cdn/{shared-80b9cb48.js → shared-74a6f365.js} +1 -1
  160. package/dist/cdn/{shared-421708b0.js → shared-7e39ec54.js} +1 -1
  161. package/dist/cdn/{shared-ec696e1b.js → shared-80bfcae3.js} +1 -1
  162. package/dist/cdn/{shared-9f44b81f.js → shared-83451a72.js} +1 -1
  163. package/dist/cdn/{shared-aac73acd.js → shared-84c5aab1.js} +1 -1
  164. package/dist/cdn/{shared-cfdd6c21.js → shared-8d6749b3.js} +1 -1
  165. package/dist/cdn/{shared-49d678ad.js → shared-91f5e0b3.js} +1 -1
  166. package/dist/cdn/shared-94bae3fb.js +1 -0
  167. package/dist/cdn/{shared-24586cfb.js → shared-94ddc918.js} +1 -1
  168. package/dist/cdn/shared-963d252e.js +1 -0
  169. package/dist/cdn/{shared-cf9c48f9.js → shared-9da63461.js} +1 -1
  170. package/dist/cdn/shared-9db46672.js +1 -0
  171. package/dist/cdn/{shared-ba5c9c0b.js → shared-9df5667e.js} +1 -1
  172. package/dist/cdn/{shared-ae462b8e.js → shared-9ee0844c.js} +1 -1
  173. package/dist/cdn/{shared-a79dbeb9.js → shared-a3abd1de.js} +1 -1
  174. package/dist/cdn/{shared-b42c6fe3.js → shared-a636184a.js} +1 -1
  175. package/dist/cdn/{shared-bba917bf.js → shared-a917b3e5.js} +1 -1
  176. package/dist/cdn/{shared-9ee719e6.js → shared-ae013b1a.js} +1 -1
  177. package/dist/cdn/shared-b4d20b03.js +1 -0
  178. package/dist/cdn/{shared-4b209827.js → shared-b5cd2b39.js} +1 -1
  179. package/dist/cdn/{shared-f91d5706.js → shared-bc0421a7.js} +1 -1
  180. package/dist/cdn/{shared-1708eb3c.js → shared-bc409d96.js} +1 -1
  181. package/dist/cdn/{shared-f2335b72.js → shared-bedfd929.js} +2 -2
  182. package/dist/cdn/{shared-59d8b64e.js → shared-c1b96673.js} +1 -1
  183. package/dist/cdn/shared-c286c5ad.js +1 -0
  184. package/dist/cdn/{shared-2e6bda84.js → shared-c47c9449.js} +1 -1
  185. package/dist/cdn/{shared-66084f2e.js → shared-c5a48553.js} +1 -1
  186. package/dist/cdn/{shared-789e3185.js → shared-cc4dabfb.js} +1 -1
  187. package/dist/cdn/{shared-0ed41a9e.js → shared-cfe1bd8c.js} +1 -1
  188. package/dist/cdn/shared-d6b4d84f.js +1 -0
  189. package/dist/cdn/{shared-2782886e.js → shared-ddde3914.js} +1 -1
  190. package/dist/cdn/{shared-824d0804.js → shared-deab9fa5.js} +1 -1
  191. package/dist/cdn/{shared-5c1e607b.js → shared-dfab3fb1.js} +1 -1
  192. package/dist/cdn/{shared-c4f5b03b.js → shared-e5a04929.js} +1 -1
  193. package/dist/cdn/{shared-fbfa45bb.js → shared-ee36b83f.js} +1 -1
  194. package/dist/cdn/{shared-7004839c.js → shared-ee67d0e4.js} +2 -2
  195. package/dist/cdn/{shared-41d57c3b.js → shared-ef2b5ceb.js} +1 -1
  196. package/dist/cdn/{shared-a4e0a78b.js → shared-f1e4e392.js} +1 -1
  197. package/dist/cdn/{shared-db108ddb.js → shared-f293f1ae.js} +1 -1
  198. package/dist/cdn/{shared-a5c48bf4.js → shared-f7a1193f.js} +1 -1
  199. package/dist/cdn/translations/address-form/en.json +3 -3
  200. package/dist/cdn/translations/api-browser/en.json +2 -5
  201. package/dist/cdn/translations/cart-form/en.json +598 -169
  202. package/dist/cdn/translations/customer/en.json +3 -3
  203. package/dist/cdn/translations/item-form/en.json +0 -1
  204. package/dist/elements/internal/InternalCalendar/InternalCalendar.js +2 -1
  205. package/dist/elements/internal/InternalCalendar/InternalCalendar.js.map +1 -1
  206. package/dist/elements/internal/InternalCard/InternalCard.js +1 -1
  207. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  208. package/dist/elements/internal/InternalControl/InternalControl.d.ts +1 -0
  209. package/dist/elements/internal/InternalControl/InternalControl.js +10 -7
  210. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  211. package/dist/elements/internal/InternalForm/InternalForm.d.ts +2 -0
  212. package/dist/elements/internal/InternalForm/InternalForm.js +26 -29
  213. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  214. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +11 -1
  215. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +115 -20
  216. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  217. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +0 -4
  218. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -1
  219. package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +2 -0
  220. package/dist/elements/internal/InternalResourcePickerControl/index.js +2 -0
  221. package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -1
  222. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +4 -1
  223. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +70 -2
  224. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  225. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.d.ts +8 -0
  226. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js +28 -0
  227. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js.map +1 -0
  228. package/dist/elements/internal/InternalSummaryControl/index.d.ts +4 -0
  229. package/dist/elements/internal/InternalSummaryControl/index.js +6 -0
  230. package/dist/elements/internal/InternalSummaryControl/index.js.map +1 -0
  231. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.d.ts +7 -0
  232. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js +75 -0
  233. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js.map +1 -0
  234. package/dist/elements/internal/InternalSwitchControl/index.d.ts +4 -0
  235. package/dist/elements/internal/InternalSwitchControl/index.js +6 -0
  236. package/dist/elements/internal/InternalSwitchControl/index.js.map +1 -0
  237. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +4 -1
  238. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +74 -1
  239. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
  240. package/dist/elements/private/Dialog/Dialog.js +1 -1
  241. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  242. package/dist/elements/public/AddressForm/AddressForm.d.ts +1 -1
  243. package/dist/elements/public/AddressForm/AddressForm.js +5 -5
  244. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  245. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +4 -1
  246. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  247. package/dist/elements/public/AttributeCard/AttributeCard.js +3 -4
  248. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  249. package/dist/elements/public/CartForm/CartForm.d.ts +17 -35
  250. package/dist/elements/public/CartForm/CartForm.js +264 -502
  251. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  252. package/dist/elements/public/CartForm/index.d.ts +10 -5
  253. package/dist/elements/public/CartForm/index.js +10 -5
  254. package/dist/elements/public/CartForm/index.js.map +1 -1
  255. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.d.ts +33 -0
  256. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js +293 -0
  257. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js.map +1 -0
  258. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.d.ts +7 -0
  259. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js +9 -0
  260. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js.map +1 -0
  261. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.d.ts +1 -0
  262. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js +58 -0
  263. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js.map +1 -0
  264. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.d.ts +11 -0
  265. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js +2 -0
  266. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js.map +1 -0
  267. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.d.ts → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.d.ts} +1 -1
  268. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js} +5 -5
  269. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js.map +1 -0
  270. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.d.ts +4 -0
  271. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js +6 -0
  272. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js.map +1 -0
  273. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.d.ts +6 -0
  274. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js +35 -0
  275. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js.map +1 -0
  276. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.d.ts +4 -0
  277. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js +6 -0
  278. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js.map +1 -0
  279. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.d.ts +5 -0
  280. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js +2 -0
  281. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js.map +1 -0
  282. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.d.ts +13 -0
  283. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js +68 -0
  284. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js.map +1 -0
  285. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.d.ts +6 -0
  286. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js +8 -0
  287. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js.map +1 -0
  288. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.d.ts +5 -0
  289. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js +2 -0
  290. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js.map +1 -0
  291. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.d.ts +9 -0
  292. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js +91 -0
  293. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js.map +1 -0
  294. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.d.ts +5 -0
  295. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js +7 -0
  296. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js.map +1 -0
  297. package/dist/elements/public/CartForm/types.d.ts +11 -1
  298. package/dist/elements/public/CartForm/types.js.map +1 -1
  299. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  300. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  301. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  302. package/dist/elements/public/FormDialog/FormDialog.js +7 -3
  303. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  304. package/dist/mixins/themeable.js +14 -6
  305. package/dist/mixins/themeable.js.map +1 -1
  306. package/package.json +1 -1
  307. package/dist/cdn/shared-004fc193.js +0 -1
  308. package/dist/cdn/shared-08d018f5.js +0 -1
  309. package/dist/cdn/shared-0da6e42c.js +0 -1
  310. package/dist/cdn/shared-0e038fda.js +0 -1
  311. package/dist/cdn/shared-1d8edd03.js +0 -1
  312. package/dist/cdn/shared-365c8437.js +0 -1
  313. package/dist/cdn/shared-57266e2a.js +0 -1
  314. package/dist/cdn/shared-5cb6aca6.js +0 -1
  315. package/dist/cdn/shared-6740ee7a.js +0 -1
  316. package/dist/cdn/shared-7af96c0a.js +0 -1
  317. package/dist/cdn/shared-8f0251e9.js +0 -1
  318. package/dist/cdn/shared-b6376c8f.js +0 -1
  319. package/dist/cdn/shared-d82f9e35.js +0 -1
  320. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js.map +0 -1
  321. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.d.ts +0 -4
  322. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js +0 -6
  323. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import '@vaadin/vaadin-button';
2
+ import "../../../../internal/InternalEditableControl/index.js";
3
+ import "../../../../internal/InternalSelectControl/index.js";
4
+ import "../../../../internal/InternalTextControl/index.js";
5
+ import "../../../NucleonElement/index.js";
6
+ import { InternalCartFormAddressSummaryItem } from "./InternalCartFormAddressSummaryItem.js";
7
+ customElements.define('foxy-internal-cart-form-address-summary-item', InternalCartFormAddressSummaryItem);
8
+ export { InternalCartFormAddressSummaryItem };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,+DAA4D;AAC5D,6DAA0D;AAC1D,2DAAwD;AAExD,0CAAuC;AAEvC,OAAO,EAAE,kCAAkC,EAAE,gDAA6C;AAE1F,cAAc,CAAC,MAAM,CACnB,8CAA8C,EAC9C,kCAAkC,CACnC,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../../../internal/InternalEditableControl/index';\nimport '../../../../internal/InternalSelectControl/index';\nimport '../../../../internal/InternalTextControl/index';\n\nimport '../../../NucleonElement/index';\n\nimport { InternalCartFormAddressSummaryItem } from './InternalCartFormAddressSummaryItem';\n\ncustomElements.define(\n 'foxy-internal-cart-form-address-summary-item',\n InternalCartFormAddressSummaryItem\n);\n\nexport { InternalCartFormAddressSummaryItem };\n"]}
@@ -0,0 +1 @@
1
+ export declare const style: import("lit-element").CSSResult;
@@ -0,0 +1,58 @@
1
+ import { css } from 'lit-element';
2
+ export const style = css `#dialog{
3
+ width:100dvw;
4
+ max-height:calc(100dvh - var(--lumo-space-m));
5
+ max-width:none;
6
+ opacity:0;
7
+ transform:translateY(100%);
8
+ transition:all 500ms allow-discrete;
9
+ transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
10
+ margin:auto 0 0 0;
11
+ border-radius:var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0 0;
12
+ }
13
+
14
+ #dialog::backdrop{
15
+ background-color:transparent;
16
+ transition:all 500ms allow-discrete;
17
+ transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
18
+ }
19
+
20
+ #dialog[open]{
21
+ opacity:1;
22
+ transform:none;
23
+ }
24
+
25
+ #dialog[open]::backdrop{
26
+ background-color:var(--lumo-shade-50pct);
27
+ }
28
+
29
+ @starting-style{
30
+ #dialog[open]{
31
+ opacity:0;
32
+ transform:translateY(100%);
33
+ }
34
+ }
35
+
36
+ @starting-style{
37
+ #dialog[open]::backdrop{
38
+ background-color:transparent;
39
+ }
40
+ }
41
+
42
+ @media all and (min-width: 640px){
43
+ #dialog{
44
+ max-width:30rem;
45
+ max-height:calc(100dvh - var(--lumo-space-m));
46
+ transform:scale(1.1);
47
+ margin:auto;
48
+ border-radius:var(--lumo-border-radius-l);
49
+ }
50
+
51
+ @starting-style{
52
+ #dialog[open]{
53
+ transform:scale(1.1);
54
+ }
55
+ }
56
+ }
57
+ `;
58
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDvB,CAAC","sourcesContent":["import { css } from 'lit-element';\n\nexport const style = css`\n #dialog {\n width: 100dvw;\n max-height: calc(100dvh - var(--lumo-space-m));\n max-width: none;\n opacity: 0;\n transform: translateY(100%);\n transition: all 500ms allow-discrete;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n margin: auto 0 0 0;\n border-radius: var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0 0;\n }\n\n #dialog::backdrop {\n background-color: transparent;\n transition: all 500ms allow-discrete;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n #dialog[open] {\n opacity: 1;\n transform: none;\n }\n\n #dialog[open]::backdrop {\n background-color: var(--lumo-shade-50pct);\n }\n\n @starting-style {\n #dialog[open] {\n opacity: 0;\n transform: translateY(100%);\n }\n }\n\n @starting-style {\n #dialog[open]::backdrop {\n background-color: transparent;\n }\n }\n\n @media all and (min-width: 640px) {\n #dialog {\n max-width: 30rem;\n max-height: calc(100dvh - var(--lumo-space-m));\n transform: scale(1.1);\n margin: auto;\n border-radius: var(--lumo-border-radius-l);\n }\n\n @starting-style {\n #dialog[open] {\n transform: scale(1.1);\n }\n }\n }\n`;\n"]}
@@ -0,0 +1,11 @@
1
+ import type { Resource } from '@foxy.io/sdk/core';
2
+ import type { Rels } from '@foxy.io/sdk/backend';
3
+ export declare type ZoomedCustomer = Resource<Rels.Customer, {
4
+ zoom: ['default_billing_address', 'default_shipping_address'];
5
+ }>;
6
+ export declare type AddressEntry = {
7
+ originalValue: string;
8
+ modified: boolean;
9
+ value: string;
10
+ field: string;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type ZoomedCustomer = Resource<\n Rels.Customer,\n { zoom: ['default_billing_address', 'default_shipping_address'] }\n>;\n\nexport type AddressEntry = {\n originalValue: string;\n modified: boolean;\n value: string;\n field: string;\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { PropertyDeclarations } from 'lit-element';
2
2
  import type { TemplateResult } from 'lit-html';
3
3
  import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
4
- export declare class InternalCartFormViewAsCustomerControl extends InternalControl {
4
+ export declare class InternalCartFormCreateSessionAction extends InternalControl {
5
5
  static get properties(): PropertyDeclarations;
6
6
  private __loader;
7
7
  renderControl(): TemplateResult;
@@ -1,7 +1,7 @@
1
1
  import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
2
  import { classMap } from "../../../../../utils/class-map.js";
3
3
  import { html } from 'lit-html';
4
- export class InternalCartFormViewAsCustomerControl extends InternalControl {
4
+ export class InternalCartFormCreateSessionAction extends InternalControl {
5
5
  constructor() {
6
6
  super(...arguments);
7
7
  this.__loader = null;
@@ -20,7 +20,7 @@ export class InternalCartFormViewAsCustomerControl extends InternalControl {
20
20
  return html `
21
21
  <a
22
22
  target="_blank"
23
- class="flex h-m px-m rounded font-medium transition-colors text-body bg-contrast-5 hover-bg-contrast-10 items-center justify-center focus-outline-none focus-ring-2 focus-ring-primary-50"
23
+ class="rounded font-medium transition-colors text-body focus-outline-none focus-ring-2 focus-ring-primary-50"
24
24
  href=${href}
25
25
  >
26
26
  <foxy-i18n infer="" key="state_idle"></foxy-i18n>
@@ -31,8 +31,7 @@ export class InternalCartFormViewAsCustomerControl extends InternalControl {
31
31
  return html `
32
32
  <div
33
33
  class=${classMap({
34
- 'flex h-m px-m rounded items-center justify-center': true,
35
- 'transition-colors bg-contrast-5 font-medium': true,
34
+ 'transition-colors font-medium rounded': true,
36
35
  'text-tertiary': state !== 'fail',
37
36
  'text-error': state === 'fail',
38
37
  })}
@@ -52,6 +51,7 @@ export class InternalCartFormViewAsCustomerControl extends InternalControl {
52
51
  }
53
52
  async __reloadSessionHref(href) {
54
53
  var _a;
54
+ console.log('RELOAD SESSION HREF', href);
55
55
  if (((_a = this.__loader) === null || _a === void 0 ? void 0 : _a.href) === href)
56
56
  return;
57
57
  const nucleon = this.nucleon;
@@ -80,4 +80,4 @@ export class InternalCartFormViewAsCustomerControl extends InternalControl {
80
80
  }
81
81
  }
82
82
  }
83
- //# sourceMappingURL=InternalCartFormViewAsCustomerControl.js.map
83
+ //# sourceMappingURL=InternalCartFormCreateSessionAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCartFormCreateSessionAction.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,QAAQ,EAAE,0CAAuC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQhC,MAAM,OAAO,mCAAoC,SAAQ,eAAe;IAAxE;;QAQU,aAAQ,GAAkB,IAAI,CAAC;IAqEzC,CAAC;IA5EC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC/B,CAAC;IACJ,CAAC;IAID,aAAa;;QACX,MAAM,KAAK,SAAG,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC;QACnC,MAAM,IAAI,SAAG,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAC;QAEnC,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAA;;;;iBAIA,IAAI;;;;OAId,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAA;;kBAEC,QAAQ,CAAC;gBACf,uCAAuC,EAAE,IAAI;gBAC7C,eAAe,EAAE,KAAK,KAAK,MAAM;gBACjC,YAAY,EAAE,KAAK,KAAK,MAAM;aAC/B,CAAC;;oCAEwB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;;OAE3E,CAAC;SACH;IACH,CAAC;IAED,OAAO,CAAC,OAAiC;;QACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAA0B,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;QAC3B,MAAM,oBAAoB,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,mBAAmB,EAAE,IAAI,mCAAI,IAAI,CAAC;QAE5E,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAmB;;QACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,OAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,MAAK,IAAI;YAAE,OAAO;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAA0B,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,IAAK,OAAO,CAAC,WAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEnE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YAEvB,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,EAAE,CAAC;gBAEpC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;gBAClD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;aACvB;YAAC,WAAM;gBACN,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;aACvB;oBAAS;gBACR,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;IACH,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { CartForm } from '../../CartForm';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { classMap } from '../../../../../utils/class-map';\nimport { html } from 'lit-html';\n\ntype Loader = {\n result: string | null;\n state: 'idle' | 'busy' | 'fail';\n href: string;\n};\n\nexport class InternalCartFormCreateSessionAction extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __loader: { attribute: false },\n };\n }\n\n private __loader: Loader | null = null;\n\n renderControl(): TemplateResult {\n const state = this.__loader?.state;\n const href = this.__loader?.result;\n\n if (href) {\n return html`\n <a\n target=\"_blank\"\n class=\"rounded font-medium transition-colors text-body focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${href}\n >\n <foxy-i18n infer=\"\" key=\"state_idle\"></foxy-i18n>\n </a>\n `;\n } else {\n return html`\n <div\n class=${classMap({\n 'transition-colors font-medium rounded': true,\n 'text-tertiary': state !== 'fail',\n 'text-error': state === 'fail',\n })}\n >\n <foxy-i18n infer=\"\" key=${state === 'fail' ? 'state_fail' : 'state_busy'}> </foxy-i18n>\n </div>\n `;\n }\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n const nucleon = this.nucleon as CartForm | null;\n const data = nucleon?.data;\n const newCreateSessionHref = data?._links['fx:create_session'].href ?? null;\n\n this.__reloadSessionHref(newCreateSessionHref);\n }\n\n private async __reloadSessionHref(href: string | null) {\n console.log('RELOAD SESSION HREF', href);\n if (this.__loader?.href === href) return;\n\n const nucleon = this.nucleon as CartForm | null;\n if (!nucleon) return;\n\n if (href) {\n const loader: Loader = { result: null, state: 'busy', href };\n const api = new (nucleon.constructor as typeof CartForm).API(this);\n\n this.__loader = loader;\n\n try {\n const response = await api.fetch(href, { method: 'POST' });\n if (!response.ok) throw new Error();\n\n loader.result = (await response.json()).cart_link;\n loader.state = 'idle';\n } catch {\n loader.state = 'fail';\n } finally {\n this.requestUpdate();\n }\n } else {\n this.__loader = null;\n }\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../../../../internal/InternalControl/index';
2
+ import '../../../I18n/index';
3
+ import { InternalCartFormCreateSessionAction as Control } from './InternalCartFormCreateSessionAction';
4
+ export { Control as InternalCartFormCreateSessionAction };
@@ -0,0 +1,6 @@
1
+ import "../../../../internal/InternalControl/index.js";
2
+ import "../../../I18n/index.js";
3
+ import { InternalCartFormCreateSessionAction as Control } from "./InternalCartFormCreateSessionAction.js";
4
+ customElements.define('foxy-internal-cart-form-create-session-action', Control);
5
+ export { Control as InternalCartFormCreateSessionAction };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AAEpD,gCAA6B;AAE7B,OAAO,EAAE,mCAAmC,IAAI,OAAO,EAAE,iDAA8C;AAEvG,cAAc,CAAC,MAAM,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\n\nimport '../../../I18n/index';\n\nimport { InternalCartFormCreateSessionAction as Control } from './InternalCartFormCreateSessionAction';\n\ncustomElements.define('foxy-internal-cart-form-create-session-action', Control);\n\nexport { Control as InternalCartFormCreateSessionAction };\n"]}
@@ -0,0 +1,6 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import type { Data } from './types';
3
+ import { TwoLineCard } from '../../../CustomFieldCard/TwoLineCard';
4
+ export declare class InternalCartFormPaymentMethodCard extends TwoLineCard<Data> {
5
+ renderBody(): TemplateResult;
6
+ }
@@ -0,0 +1,35 @@
1
+ import { getResourceId } from '@foxy.io/sdk/core';
2
+ import { TwoLineCard } from "../../../CustomFieldCard/TwoLineCard.js";
3
+ import { html } from 'lit-html';
4
+ export class InternalCartFormPaymentMethodCard extends TwoLineCard {
5
+ renderBody() {
6
+ return super.renderBody({
7
+ title: data => {
8
+ var _a, _b, _c, _d, _e;
9
+ const payment = (_b = (_a = data._embedded) === null || _a === void 0 ? void 0 : _a['fx:payments']) === null || _b === void 0 ? void 0 : _b[0];
10
+ const type = (_c = payment === null || payment === void 0 ? void 0 : payment.cc_type) !== null && _c !== void 0 ? _c : '';
11
+ const year = (_d = payment === null || payment === void 0 ? void 0 : payment.cc_exp_year) === null || _d === void 0 ? void 0 : _d.substring(2);
12
+ const month = payment === null || payment === void 0 ? void 0 : payment.cc_exp_month;
13
+ const last4Digits = (_e = payment === null || payment === void 0 ? void 0 : payment.cc_number_masked) === null || _e === void 0 ? void 0 : _e.replace(/x/gi, '');
14
+ const options = {
15
+ last4Digits,
16
+ context: type && year && month && last4Digits ? 'valid' : 'invalid',
17
+ month,
18
+ type,
19
+ year,
20
+ };
21
+ return html `<foxy-i18n infer="" key="title" .options=${options}></foxy-i18n>`;
22
+ },
23
+ subtitle: data => {
24
+ var _a, _b, _c;
25
+ const payment = (_b = (_a = data._embedded) === null || _a === void 0 ? void 0 : _a['fx:payments']) === null || _b === void 0 ? void 0 : _b[0];
26
+ const options = {
27
+ id: getResourceId(data._links.self.href),
28
+ date: (_c = payment === null || payment === void 0 ? void 0 : payment.date_created) !== null && _c !== void 0 ? _c : data.transaction_date,
29
+ };
30
+ return html `<foxy-i18n infer="" key="subtitle" .options=${options}></foxy-i18n>`;
31
+ },
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=InternalCartFormPaymentMethodCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCartFormPaymentMethodCard.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,gDAA6C;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,iCAAkC,SAAQ,WAAiB;IACtE,UAAU;QACR,OAAO,KAAK,CAAC,UAAU,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,EAAE;;gBACZ,MAAM,OAAO,eAAG,IAAI,CAAC,SAAS,0CAAG,aAAa,2CAAI,CAAC,CAAC,CAAC;gBACrD,MAAM,IAAI,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;gBACpC,MAAM,WAAW,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClE,MAAM,OAAO,GAAG;oBACd,WAAW;oBACX,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACnE,KAAK;oBACL,IAAI;oBACJ,IAAI;iBACL,CAAC;gBAEF,OAAO,IAAI,CAAA,4CAA4C,OAAO,eAAe,CAAC;YAChF,CAAC;YAED,QAAQ,EAAE,IAAI,CAAC,EAAE;;gBACf,MAAM,OAAO,eAAG,IAAI,CAAC,SAAS,0CAAG,aAAa,2CAAI,CAAC,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxC,IAAI,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,IAAI,CAAC,gBAAgB;iBACrD,CAAC;gBAEF,OAAO,IAAI,CAAA,+CAA+C,OAAO,eAAe,CAAC;YACnF,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { getResourceId } from '@foxy.io/sdk/core';\nimport { TwoLineCard } from '../../../CustomFieldCard/TwoLineCard';\nimport { html } from 'lit-html';\n\nexport class InternalCartFormPaymentMethodCard extends TwoLineCard<Data> {\n renderBody(): TemplateResult {\n return super.renderBody({\n title: data => {\n const payment = data._embedded?.['fx:payments']?.[0];\n const type = payment?.cc_type ?? '';\n const year = payment?.cc_exp_year?.substring(2);\n const month = payment?.cc_exp_month;\n const last4Digits = payment?.cc_number_masked?.replace(/x/gi, '');\n const options = {\n last4Digits,\n context: type && year && month && last4Digits ? 'valid' : 'invalid',\n month,\n type,\n year,\n };\n\n return html`<foxy-i18n infer=\"\" key=\"title\" .options=${options}></foxy-i18n>`;\n },\n\n subtitle: data => {\n const payment = data._embedded?.['fx:payments']?.[0];\n const options = {\n id: getResourceId(data._links.self.href),\n date: payment?.date_created ?? data.transaction_date,\n };\n\n return html`<foxy-i18n infer=\"\" key=\"subtitle\" .options=${options}></foxy-i18n>`;\n },\n });\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../../../../internal/InternalCard/index';
2
+ import '../../../I18n/index';
3
+ import { InternalCartFormPaymentMethodCard } from './InternalCartFormPaymentMethodCard';
4
+ export { InternalCartFormPaymentMethodCard };
@@ -0,0 +1,6 @@
1
+ import "../../../../internal/InternalCard/index.js";
2
+ import "../../../I18n/index.js";
3
+ import { InternalCartFormPaymentMethodCard } from "./InternalCartFormPaymentMethodCard.js";
4
+ customElements.define('foxy-internal-cart-form-payment-method-card', InternalCartFormPaymentMethodCard);
5
+ export { InternalCartFormPaymentMethodCard };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.ts"],"names":[],"mappings":"AAAA,oDAAiD;AACjD,gCAA6B;AAE7B,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AAExF,cAAc,CAAC,MAAM,CACnB,6CAA6C,EAC7C,iCAAiC,CAClC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalCard/index';\nimport '../../../I18n/index';\n\nimport { InternalCartFormPaymentMethodCard } from './InternalCartFormPaymentMethodCard';\n\ncustomElements.define(\n 'foxy-internal-cart-form-payment-method-card',\n InternalCartFormPaymentMethodCard\n);\n\nexport { InternalCartFormPaymentMethodCard };\n"]}
@@ -0,0 +1,5 @@
1
+ import type { Resource } from '@foxy.io/sdk/core';
2
+ import type { Rels } from '@foxy.io/sdk/backend';
3
+ export declare type Data = Resource<Rels.Transaction, {
4
+ zoom: 'payments';
5
+ }>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/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: 'payments' }>;\n"]}
@@ -0,0 +1,13 @@
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
+ import type { Data } from './types';
3
+ import { InternalForm } from '../../../../internal/InternalForm/InternalForm';
4
+ export declare class InternalCartFormPaymentMethodForm extends InternalForm<Data> {
5
+ static get properties(): PropertyDeclarations;
6
+ /** URL of the `fx:default_payment_method` resource. */
7
+ defaultPaymentMethod: string | null;
8
+ /** Complete configuration URL for the Payment Card Embed. */
9
+ paymentCardEmbedUrl: string | null;
10
+ /** Props/event listeners to add to the selection list. */
11
+ selectionProps: Record<PropertyKey, unknown>;
12
+ renderBody(): TemplateResult;
13
+ }
@@ -0,0 +1,68 @@
1
+ import { InternalForm } from "../../../../internal/InternalForm/InternalForm.js";
2
+ import { UpdateEvent } from "../../../NucleonElement/UpdateEvent.js";
3
+ import { ifDefined } from 'lit-html/directives/if-defined';
4
+ import { spread } from '@open-wc/lit-helpers';
5
+ import { html } from 'lit-html';
6
+ export class InternalCartFormPaymentMethodForm extends InternalForm {
7
+ constructor() {
8
+ super(...arguments);
9
+ /** URL of the `fx:default_payment_method` resource. */
10
+ this.defaultPaymentMethod = null;
11
+ /** Complete configuration URL for the Payment Card Embed. */
12
+ this.paymentCardEmbedUrl = null;
13
+ /** Props/event listeners to add to the selection list. */
14
+ this.selectionProps = {};
15
+ }
16
+ static get properties() {
17
+ return {
18
+ ...super.properties,
19
+ defaultPaymentMethod: { attribute: 'default-payment-method' },
20
+ paymentCardEmbedUrl: { attribute: 'payment-card-embed-url' },
21
+ selectionProps: { attribute: false },
22
+ };
23
+ }
24
+ renderBody() {
25
+ var _a, _b;
26
+ return html `
27
+ <foxy-update-payment-method-form
28
+ embed-url=${ifDefined((_a = this.paymentCardEmbedUrl) !== null && _a !== void 0 ? _a : void 0)}
29
+ infer="default-payment-method"
30
+ href=${ifDefined((_b = this.defaultPaymentMethod) !== null && _b !== void 0 ? _b : void 0)}
31
+ @update=${(evt) => {
32
+ var _a;
33
+ if (((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.result) === UpdateEvent.UpdateResult.ResourceUpdated) {
34
+ this.edit({ selection: '' });
35
+ this.submit();
36
+ }
37
+ }}
38
+ >
39
+ </foxy-update-payment-method-form>
40
+
41
+ <div class="flex items-center gap-m">
42
+ <div class="border-t border-contrast-10 flex-1"></div>
43
+ <foxy-i18n class="text-tertiary" infer="" key="or"></foxy-i18n>
44
+ <div class="border-t border-contrast-10 flex-1"></div>
45
+ </div>
46
+
47
+ <h2 class="text-xl font-medium">
48
+ <foxy-i18n infer="" key="select_previous"></foxy-i18n>
49
+ </h2>
50
+
51
+ <foxy-internal-async-list-control
52
+ infer="selection"
53
+ limit="5"
54
+ form="foxy-null"
55
+ hide-delete-button
56
+ hide-create-button
57
+ @itemclick=${(evt) => {
58
+ evt.preventDefault();
59
+ this.edit({ selection: evt.detail });
60
+ this.submit();
61
+ }}
62
+ ...=${spread(this.selectionProps)}
63
+ >
64
+ </foxy-internal-async-list-control>
65
+ `;
66
+ }
67
+ }
68
+ //# sourceMappingURL=InternalCartFormPaymentMethodForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCartFormPaymentMethodForm.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,0DAAuD;AAC9E,OAAO,EAAE,WAAW,EAAE,+CAA4C;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,iCAAkC,SAAQ,YAAkB;IAAzE;;QAUE,uDAAuD;QACvD,yBAAoB,GAAkB,IAAI,CAAC;QAE3C,6DAA6D;QAC7D,wBAAmB,GAAkB,IAAI,CAAC;QAE1C,0DAA0D;QAC1D,mBAAc,GAAiC,EAAE,CAAC;IA2CpD,CAAC;IA3DC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,oBAAoB,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE;YAC7D,mBAAmB,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE;YAC5D,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAWD,UAAU;;QACR,OAAO,IAAI,CAAA;;oBAEK,SAAS,OAAC,IAAI,CAAC,mBAAmB,mCAAI,KAAK,CAAC,CAAC;;eAElD,SAAS,OAAC,IAAI,CAAC,oBAAoB,mCAAI,KAAK,CAAC,CAAC;kBAC3C,CAAC,GAAgB,EAAE,EAAE;;YAC7B,IAAI,OAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,MAAK,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE;gBACnE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC;;;;;;;;;;;;;;;;;;;;qBAoBY,CAAC,GAAwB,EAAE,EAAE;YACxC,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;cACK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;;KAGpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Data } from './types';\n\nimport { InternalForm } from '../../../../internal/InternalForm/InternalForm';\nimport { UpdateEvent } from '../../../NucleonElement/UpdateEvent';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\nexport class InternalCartFormPaymentMethodForm extends InternalForm<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultPaymentMethod: { attribute: 'default-payment-method' },\n paymentCardEmbedUrl: { attribute: 'payment-card-embed-url' },\n selectionProps: { attribute: false },\n };\n }\n\n /** URL of the `fx:default_payment_method` resource. */\n defaultPaymentMethod: string | null = null;\n\n /** Complete configuration URL for the Payment Card Embed. */\n paymentCardEmbedUrl: string | null = null;\n\n /** Props/event listeners to add to the selection list. */\n selectionProps: Record<PropertyKey, unknown> = {};\n\n renderBody(): TemplateResult {\n return html`\n <foxy-update-payment-method-form\n embed-url=${ifDefined(this.paymentCardEmbedUrl ?? void 0)}\n infer=\"default-payment-method\"\n href=${ifDefined(this.defaultPaymentMethod ?? void 0)}\n @update=${(evt: UpdateEvent) => {\n if (evt.detail?.result === UpdateEvent.UpdateResult.ResourceUpdated) {\n this.edit({ selection: '' });\n this.submit();\n }\n }}\n >\n </foxy-update-payment-method-form>\n\n <div class=\"flex items-center gap-m\">\n <div class=\"border-t border-contrast-10 flex-1\"></div>\n <foxy-i18n class=\"text-tertiary\" infer=\"\" key=\"or\"></foxy-i18n>\n <div class=\"border-t border-contrast-10 flex-1\"></div>\n </div>\n\n <h2 class=\"text-xl font-medium\">\n <foxy-i18n infer=\"\" key=\"select_previous\"></foxy-i18n>\n </h2>\n\n <foxy-internal-async-list-control\n infer=\"selection\"\n limit=\"5\"\n form=\"foxy-null\"\n hide-delete-button\n hide-create-button\n @itemclick=${(evt: CustomEvent<string>) => {\n evt.preventDefault();\n this.edit({ selection: evt.detail });\n this.submit();\n }}\n ...=${spread(this.selectionProps)}\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import '../../../../internal/InternalAsyncListControl/index';
2
+ import '../../../../internal/InternalForm/index';
3
+ import '../../../UpdatePaymentMethodForm/index';
4
+ import '../../../I18n/index';
5
+ import { InternalCartFormPaymentMethodForm } from './InternalCartFormPaymentMethodForm';
6
+ export { InternalCartFormPaymentMethodForm };
@@ -0,0 +1,8 @@
1
+ import "../../../../internal/InternalAsyncListControl/index.js";
2
+ import "../../../../internal/InternalForm/index.js";
3
+ import "../../../UpdatePaymentMethodForm/index.js";
4
+ import "../../../I18n/index.js";
5
+ import { InternalCartFormPaymentMethodForm } from "./InternalCartFormPaymentMethodForm.js";
6
+ customElements.define('foxy-internal-cart-form-payment-method-form', InternalCartFormPaymentMethodForm);
7
+ export { InternalCartFormPaymentMethodForm };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.ts"],"names":[],"mappings":"AAAA,gEAA6D;AAC7D,oDAAiD;AAEjD,mDAAgD;AAChD,gCAA6B;AAE7B,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AAExF,cAAc,CAAC,MAAM,CACnB,6CAA6C,EAC7C,iCAAiC,CAClC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalAsyncListControl/index';\nimport '../../../../internal/InternalForm/index';\n\nimport '../../../UpdatePaymentMethodForm/index';\nimport '../../../I18n/index';\n\nimport { InternalCartFormPaymentMethodForm } from './InternalCartFormPaymentMethodForm';\n\ncustomElements.define(\n 'foxy-internal-cart-form-payment-method-form',\n InternalCartFormPaymentMethodForm\n);\n\nexport { InternalCartFormPaymentMethodForm };\n"]}
@@ -0,0 +1,5 @@
1
+ import type { HALJSONResource } from '../../../NucleonElement/types';
2
+ export declare type Data = HALJSONResource & {
3
+ selection: string;
4
+ query: string;
5
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HALJSONResource } from '../../../NucleonElement/types';\n\nexport type Data = HALJSONResource & { selection: string; query: string };\n"]}
@@ -0,0 +1,9 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
3
+ export declare class InternalCartFormTotalsControl extends InternalControl {
4
+ private readonly __storeLoaderId;
5
+ renderControl(): TemplateResult;
6
+ private get __storeHref();
7
+ private get __store();
8
+ private __renderPrice;
9
+ }
@@ -0,0 +1,91 @@
1
+ import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-html';
4
+ export class InternalCartFormTotalsControl extends InternalControl {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.__storeLoaderId = 'storeLoader';
8
+ }
9
+ renderControl() {
10
+ var _a, _b, _c, _d, _e;
11
+ const data = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data;
12
+ if (!data)
13
+ return html ``;
14
+ return html `
15
+ <foxy-nucleon
16
+ infer=""
17
+ href=${ifDefined(this.__storeHref)}
18
+ id=${this.__storeLoaderId}
19
+ @update=${() => this.requestUpdate()}
20
+ >
21
+ </foxy-nucleon>
22
+
23
+ <p
24
+ class="grid gap-x-s text-right text-s leading-m border-dashed border rounded border-contrast-20 whitespace-nowrap overflow-auto"
25
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 2px); grid-template-columns: 1fr min-content"
26
+ >
27
+ <span><foxy-i18n key="subtotal" infer=""></foxy-i18n>&colon;</span>
28
+ <span>${this.__renderPrice(data.total_item_price)}</span>
29
+
30
+ <span><foxy-i18n infer="" key="total_shipping"></foxy-i18n>&colon;</span>
31
+ <span>${this.__renderPrice(data.total_shipping, true)} </span>
32
+
33
+ <span><foxy-i18n infer="" key="total_tax"></foxy-i18n>&colon;</span>
34
+ <span>${this.__renderPrice(data.total_tax, true)}</span>
35
+ ${
36
+ // @ts-expect-error SDK doesn't support name mismatch between `fx:applied_gift_card_codes` and `fx:gift_card_logs`
37
+ (_c = (_b = data === null || data === void 0 ? void 0 : data._embedded) === null || _b === void 0 ? void 0 : _b['fx:applied_gift_card_codes']) === null || _c === void 0 ? void 0 : _c.map(code => {
38
+ var _a;
39
+ return html `
40
+ <span>${code._embedded['fx:gift_card'].name}&colon;</span>
41
+ <span>${this.__renderPrice((_a = code.balance_adjustment) !== null && _a !== void 0 ? _a : 0, true)}</span>
42
+ `;
43
+ })}
44
+ ${(_e = (_d = data === null || data === void 0 ? void 0 : data._embedded) === null || _d === void 0 ? void 0 : _d['fx:discounts']) === null || _e === void 0 ? void 0 : _e.map(discount => {
45
+ return html `
46
+ <span data-testclass="discount">${discount.name}&colon;</span>
47
+ <span>${this.__renderPrice(discount.amount, true)}</span>
48
+ `;
49
+ })}
50
+
51
+ <span class="col-span-2 border-t border-dashed border-contrast-20 my-s"></span>
52
+
53
+ <span class="col-span-2 flex gap-s justify-between items-center">
54
+ <span></span>
55
+ <span class="text-xl font-medium leading-xs">
56
+ <foxy-i18n infer="" key="total"></foxy-i18n>&colon;
57
+ ${this.__renderPrice(data.total_order)}
58
+ </span>
59
+ </span>
60
+ </p>
61
+ `;
62
+ }
63
+ get __storeHref() {
64
+ var _a, _b, _c;
65
+ return (_c = (_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._links['fx:store']) === null || _c === void 0 ? void 0 : _c.href;
66
+ }
67
+ get __store() {
68
+ var _a, _b;
69
+ const selector = `#${this.__storeLoaderId}`;
70
+ return (_b = (_a = this.renderRoot.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : null;
71
+ }
72
+ __renderPrice(amount, isAdditive = false) {
73
+ var _a, _b, _c;
74
+ const currencyDisplay = ((_a = this.__store) === null || _a === void 0 ? void 0 : _a.use_international_currency_symbol) ? 'code' : 'symbol';
75
+ const currencyCode = (_c = (_b = this.nucleon) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.currency_code;
76
+ return html `
77
+ <foxy-i18n
78
+ class=${isAdditive && amount !== 0 ? (amount > 0 ? 'text-success' : 'text-error') : ''}
79
+ infer=""
80
+ key="price"
81
+ .options=${{
82
+ currencyDisplay,
83
+ signDisplay: isAdditive ? 'exceptZero' : 'auto',
84
+ amount: `${amount} ${currencyCode}`,
85
+ }}
86
+ >
87
+ </foxy-i18n>
88
+ `;
89
+ }
90
+ }
91
+ //# sourceMappingURL=InternalCartFormTotalsControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCartFormTotalsControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.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,6BAA8B,SAAQ,eAAe;IAAlE;;QACmB,oBAAe,GAAG,aAAa,CAAC;IAoFnD,CAAC;IAlFC,aAAa;;QACX,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAwB,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;QAEzB,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;;;gBAG9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAmC,EAAE,IAAI,CAAC;;;gBAGlE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAA8B,EAAE,IAAI,CAAC;UACnE;QACA,kHAAkH;QAClH,YAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAG,4BAA4B,2CAAG,GAAG,CAAC,IAAI,CAAC,EAAE;;YAC1D,OAAO,IAAI,CAAA;sBACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI;sBACnC,IAAI,CAAC,aAAa,OAAC,IAAI,CAAC,kBAAkB,mCAAI,CAAC,EAAE,IAAI,CAAC;aAC/D,CAAC;QACJ,CAAC,CACH;UACE,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;;;;;;;;cAQI,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;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 InternalCartFormTotalsControl 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 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 <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 <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 // @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 <span></span>\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"]}
@@ -0,0 +1,5 @@
1
+ import '../../../../internal/InternalControl/index';
2
+ import '../../../NucleonElement/index';
3
+ import '../../../I18n/index';
4
+ import { InternalCartFormTotalsControl as Control } from './InternalCartFormTotalsControl';
5
+ export { Control as InternalCartFormTotalsControl };
@@ -0,0 +1,7 @@
1
+ import "../../../../internal/InternalControl/index.js";
2
+ import "../../../NucleonElement/index.js";
3
+ import "../../../I18n/index.js";
4
+ import { InternalCartFormTotalsControl as Control } from "./InternalCartFormTotalsControl.js";
5
+ customElements.define('foxy-internal-cart-form-totals-control', Control);
6
+ export { Control as InternalCartFormTotalsControl };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,0CAAuC;AACvC,gCAA6B;AAE7B,OAAO,EAAE,6BAA6B,IAAI,OAAO,EAAE,2CAAwC;AAE3F,cAAc,CAAC,MAAM,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '../../../NucleonElement/index';\nimport '../../../I18n/index';\n\nimport { InternalCartFormTotalsControl as Control } from './InternalCartFormTotalsControl';\n\ncustomElements.define('foxy-internal-cart-form-totals-control', Control);\n\nexport { Control as InternalCartFormTotalsControl };\n"]}
@@ -1,3 +1,13 @@
1
1
  import type { Resource } from '@foxy.io/sdk/core';
2
2
  import type { Rels } from '@foxy.io/sdk/backend';
3
- export declare type Data = Resource<Rels.Cart>;
3
+ declare type OriginalData = Resource<Rels.Cart, {
4
+ zoom: ['discounts'];
5
+ }>;
6
+ declare type FixedData = Omit<OriginalData, 'billing_region' | 'shipping_region'> & {
7
+ /** Corresponds to the `region` field in `fx:customer_address`. API quirk. */
8
+ billing_state: string;
9
+ /** Corresponds to the `region` field in `fx:customer_address`. API quirk. */
10
+ shipping_state: string;
11
+ };
12
+ export declare type Data = FixedData;
13
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/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.Cart>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\n// TODO remove this once SDK is fixed\ntype OriginalData = Resource<Rels.Cart, { zoom: ['discounts'] }>;\ntype FixedData = Omit<OriginalData, 'billing_region' | 'shipping_region'> & {\n /** Corresponds to the `region` field in `fx:customer_address`. API quirk. */\n billing_state: string;\n /** Corresponds to the `region` field in `fx:customer_address`. API quirk. */\n shipping_state: string;\n};\n\nexport type Data = FixedData;\n"]}
@@ -37,7 +37,7 @@ export class TwoLineCard extends Base {
37
37
  const hiddenSelector = this.hiddenSelector;
38
38
  return html `
39
39
  <div
40
- class="h-s flex flex-col justify-center relative text-body text-m font-lumo leading-xs sm-h-xs sm-flex-row sm-items-center sm-justify-between"
40
+ class="relative text-body text-m font-lumo leading-xs sm-h-auto sm-flex sm-items-center sm-justify-between"
41
41
  >
42
42
  ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle(options === null || options === void 0 ? void 0 : options.title)}
43
43
  ${hiddenSelector.matches('subtitle', true) ? '' : this.__renderSubtitle(options === null || options === void 0 ? void 0 : options.subtitle)}
@@ -1 +1 @@
1
- {"version":3,"file":"TwoLineCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomFieldCard/TwoLineCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAShC,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AAE9D,MAAM,OAAO,WAA2C,SAAQ,IAAW;IAA3E;;QACmB,kBAAa,GAAG,CAAC,OAA2B,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;YAGvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;;;UAGvC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;QACJ,CAAC,CAAC;QAEe,qBAAgB,GAAG,CAAC,OAA2B,EAAE,EAAE;YAClE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;;;YAG1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;;;UAGvC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;KAEhD,CAAC;QACJ,CAAC,CAAC;IAcJ,CAAC;IAZC,UAAU,CAAC,OAA8B;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,OAAO,IAAI,CAAA;;;;UAIL,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;UAC/E,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;;KAE7F,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { HALJSONResource } from '../NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { html } from 'lit-html';\n\nexport type TemplateFn<TData extends HALJSONResource> = (data: TData) => TemplateResult;\n\nexport type RenderOptions<TData extends HALJSONResource> = {\n title: TemplateFn<TData>;\n subtitle: TemplateFn<TData>;\n};\n\nconst Base = ResponsiveMixin(ConfigurableMixin(InternalCard));\n\nexport class TwoLineCard<TData extends HALJSONResource> extends Base<TData> {\n private readonly __renderTitle = (content?: TemplateFn<TData>) => {\n return html`\n <div data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n\n <div class=\"font-medium truncate\">\n ${this.data ? content?.(this.data) : ''}&ZeroWidthSpace;\n </div>\n\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n };\n\n private readonly __renderSubtitle = (content?: TemplateFn<TData>) => {\n return html`\n <div data-testid=\"subtitle\">\n ${this.renderTemplateOrSlot('subtitle:before')}\n\n <div class=\"text-secondary truncate text-s sm-text-m\">\n ${this.data ? content?.(this.data) : ''}&ZeroWidthSpace;\n </div>\n\n ${this.renderTemplateOrSlot('subtitle:after')}\n </div>\n `;\n };\n\n renderBody(options?: RenderOptions<TData>): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n class=\"h-s flex flex-col justify-center relative text-body text-m font-lumo leading-xs sm-h-xs sm-flex-row sm-items-center sm-justify-between\"\n >\n ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle(options?.title)}\n ${hiddenSelector.matches('subtitle', true) ? '' : this.__renderSubtitle(options?.subtitle)}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"TwoLineCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomFieldCard/TwoLineCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAShC,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AAE9D,MAAM,OAAO,WAA2C,SAAQ,IAAW;IAA3E;;QACmB,kBAAa,GAAG,CAAC,OAA2B,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;YAGvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;;;UAGvC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;QACJ,CAAC,CAAC;QAEe,qBAAgB,GAAG,CAAC,OAA2B,EAAE,EAAE;YAClE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;;;YAG1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;;;UAGvC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;KAEhD,CAAC;QACJ,CAAC,CAAC;IAcJ,CAAC;IAZC,UAAU,CAAC,OAA8B;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,OAAO,IAAI,CAAA;;;;UAIL,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;UAC/E,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;;KAE7F,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { HALJSONResource } from '../NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { html } from 'lit-html';\n\nexport type TemplateFn<TData extends HALJSONResource> = (data: TData) => TemplateResult;\n\nexport type RenderOptions<TData extends HALJSONResource> = {\n title: TemplateFn<TData>;\n subtitle: TemplateFn<TData>;\n};\n\nconst Base = ResponsiveMixin(ConfigurableMixin(InternalCard));\n\nexport class TwoLineCard<TData extends HALJSONResource> extends Base<TData> {\n private readonly __renderTitle = (content?: TemplateFn<TData>) => {\n return html`\n <div data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n\n <div class=\"font-medium truncate\">\n ${this.data ? content?.(this.data) : ''}&ZeroWidthSpace;\n </div>\n\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n };\n\n private readonly __renderSubtitle = (content?: TemplateFn<TData>) => {\n return html`\n <div data-testid=\"subtitle\">\n ${this.renderTemplateOrSlot('subtitle:before')}\n\n <div class=\"text-secondary truncate text-s sm-text-m\">\n ${this.data ? content?.(this.data) : ''}&ZeroWidthSpace;\n </div>\n\n ${this.renderTemplateOrSlot('subtitle:after')}\n </div>\n `;\n };\n\n renderBody(options?: RenderOptions<TData>): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n class=\"relative text-body text-m font-lumo leading-xs sm-h-auto sm-flex sm-items-center sm-justify-between\"\n >\n ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle(options?.title)}\n ${hiddenSelector.matches('subtitle', true) ? '' : this.__renderSubtitle(options?.subtitle)}\n </div>\n `;\n }\n}\n"]}