@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
@@ -1 +1 @@
1
- {"version":3,"file":"CartForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/CartForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { FormRenderer } from '../FormDialog/types';\nimport type { ItemRenderer } from '../CollectionPage/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nimport set from 'lodash-es/set';\nimport get from 'lodash-es/get';\n\nconst NS = 'cart-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing carts (`fx:cart`).\n *\n * @element foxy-cart-form\n * @since 1.21.0\n */\nexport class CartForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategories: { attribute: 'item-categories' },\n templateSets: { attribute: 'template-sets' },\n localeCodes: { attribute: 'locale-codes' },\n customers: {},\n countries: {},\n regions: {},\n coupons: {},\n __isGuestMode: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ billing_first_name: v }) => !v || v.length <= 50 || 'billing-first-name:v8n_too_long',\n ({ billing_last_name: v }) => !v || v.length <= 50 || 'billing-last-name:v8n_too_long',\n ({ billing_region: v }) => !v || v.length <= 50 || 'billing-region:v8n_too_long',\n ({ billing_city: v }) => !v || v.length <= 50 || 'billing-city:v8n_too_long',\n ({ billing_phone: v }) => !v || v.length <= 50 || 'billing-phone:v8n_too_long',\n ({ billing_company: v }) => !v || v.length <= 50 || 'billing-company:v8n_too_long',\n ({ billing_address2: v }) => !v || v.length <= 100 || 'billing-address-two:v8n_too_long',\n ({ billing_address1: v }) => !v || v.length <= 100 || 'billing-address-one:v8n_too_long',\n ({ billing_postal_code: v }) => !v || v.length <= 50 || 'billing-postal-code:v8n_too_long',\n ({ shipping_first_name: v }) => !v || v.length <= 50 || 'shipping-first-name:v8n_too_long',\n ({ shipping_last_name: v }) => !v || v.length <= 50 || 'shipping-last-name:v8n_too_long',\n ({ shipping_region: v }) => !v || v.length <= 50 || 'shipping-region:v8n_too_long',\n ({ shipping_city: v }) => !v || v.length <= 50 || 'shipping-city:v8n_too_long',\n ({ shipping_phone: v }) => !v || v.length <= 50 || 'shipping-phone:v8n_too_long',\n ({ shipping_company: v }) => !v || v.length <= 50 || 'shipping-company:v8n_too_long',\n ({ shipping_address2: v }) => !v || v.length <= 100 || 'shipping-address-two:v8n_too_long',\n ({ shipping_address1: v }) => !v || v.length <= 100 || 'shipping-address-one:v8n_too_long',\n ({ shipping_postal_code: v }) => !v || v.length <= 50 || 'shipping-postal-code:v8n_too_long',\n ];\n }\n\n /** URL of the `fx:item_categories` collection for the store. */\n itemCategories: string | null = null;\n\n /** URL of the `fx:template_sets` collection for the store. */\n templateSets: string | null = null;\n\n /** URL of the `fx:locale_codes` property helper. */\n localeCodes: string | null = null;\n\n /** URL of the `fx:customers` collection for the store. */\n customers: string | null = null;\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** URL of the `fx:coupons` collection for the store. */\n coupons: string | null = null;\n\n private readonly __defaultTemplateSetLoaderId = 'defaultTemplateSetLoader';\n\n private readonly __localeCodesHelperLoaderId = 'localeCodesLoader';\n\n private readonly __shippingRegionsLoaderId = 'shippingRegionsLoader';\n\n private readonly __billingRegionsLoaderId = 'billingRegionsLoader';\n\n private readonly __templateSetLoaderId = 'templateSetLoader';\n\n private readonly __countriesHelperLoaderId = 'countriesHelperLoader';\n\n private readonly __discountsLoaderId = 'discountsLoader';\n\n private readonly __customerLoaderId = 'customerLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __customerTypeGetValue = () => {\n if (!this.form.customer_uri) return 'new';\n return this.__customer?.is_anonymous ? 'guest' : 'regular';\n };\n\n private readonly __customerTypeSetValue = (newValue: string) => {\n this.edit({ customer_uri: '', customer_email: '' });\n this.__isGuestMode = newValue === 'guest';\n };\n\n private readonly __customerTypeOptions = [\n { label: 'option_new', value: 'new' },\n { label: 'option_guest', value: 'guest' },\n { label: 'option_regular', value: 'regular' },\n ];\n\n private readonly __customerGetValue = () => {\n return this.form.customer_uri || this.form.customer_email;\n };\n\n private readonly __customerSetValue = (newValue: string) => {\n try {\n // if newValue isn't a fx:customer URI this will error\n new URL(newValue);\n\n // filter customer_email out of edits because when supplying the customer_uri the email must\n // be that customer's email and it might not be immediately available at the time this getter is called\n const newEdits: Partial<Data> = {};\n const data = this.data;\n const form = this.form;\n\n for (const key in this.form) {\n if (key === 'customer_email') continue;\n const formValue = get(form, key);\n if (get(data, key) !== formValue) set(newEdits, key, formValue);\n }\n\n this.undo();\n this.edit({ ...newEdits, customer_uri: newValue });\n } catch {\n this.edit({ customer_uri: '', customer_email: newValue });\n }\n };\n\n private __isGuestMode = false;\n\n renderBody(): TemplateResult {\n const shippingRegions = Object.values(this.__shippingRegions ?? {});\n const billingRegions = Object.values(this.__billingRegions ?? {});\n const countries = Object.values(this.__countriesHelper ?? {});\n\n const shippingRegionOptions = shippingRegions.map(r => ({ label: r.default, value: r.code }));\n const billingRegionOptions = billingRegions.map(r => ({ label: r.default, value: r.code }));\n const countryOptions = countries.map(c => ({ label: c.default, value: c.cc2 }));\n\n const customerAddresses = this.__customer?._links['fx:customer_addresses'].href;\n\n const renderItemForm: FormRenderer = ctx => html`\n <foxy-item-form\n customer-addresses=${ifDefined(customerAddresses ?? void 0)}\n item-categories=${ifDefined(this.itemCategories ?? void 0)}\n locale-codes=${ifDefined(this.localeCodes ?? void 0)}\n coupons=${ifDefined(this.coupons ?? void 0)}\n parent=${ctx.dialog.parent}\n href=${ctx.dialog.href}\n infer=\"\"\n id=\"form\"\n .related=${ctx.dialog.related}\n @fetch=${ctx.handleFetch}\n @update=${ctx.handleUpdate}\n >\n </foxy-item-form>\n `;\n\n const renderItemCard: ItemRenderer = ctx => html`\n <foxy-item-card\n locale-codes=${this.localeCodes}\n parent=${ctx.parent}\n infer=\"\"\n href=${ctx.href}\n .related=${ctx.related}\n >\n </foxy-item-card>\n `;\n\n const store = this.__store;\n const currencyDisplay = store\n ? store.use_international_currency_symbol\n ? 'code'\n : 'symbol'\n : void 0;\n\n let currencyCode: string | null = null;\n\n if (this.form.currency_code) {\n currencyCode = this.form.currency_code;\n } else {\n const allLocaleCodes = this.__localeCodesHelper;\n const localeCode = (this.__templateSet ?? this.__defaultTemplateSet)?.locale_code;\n const localeInfo = localeCode ? allLocaleCodes?.values[localeCode] : void 0;\n\n if (localeInfo) currencyCode = /Currency: ([A-Z]{3})/g.exec(localeInfo)?.[1] ?? null;\n }\n\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid sm-grid-cols-2 gap-l\">\n <div class=\"sm-col-span-2\">\n <foxy-i18n class=\"text-l font-medium leading-s block\" infer=\"\" key=\"order_section_title\">\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-s text-secondary leading-s block\"\n infer=\"\"\n key=\"order_section_description\"\n >\n </foxy-i18n>\n </div>\n\n <foxy-internal-select-control\n infer=\"customer-type\"\n .getValue=${this.__customerTypeGetValue}\n .setValue=${this.__customerTypeSetValue}\n .options=${this.__customerTypeOptions}\n @update=${() => this.requestUpdate()}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"email\"\n item-value-path=\"_links.self.href\"\n item-id-path=\"_links.self.href\"\n first=${ifDefined(this.__customersHref)}\n infer=\"customer\"\n allow-custom-value\n .selectedItem=${this.__customer}\n .getValue=${this.__customerGetValue}\n .setValue=${this.__customerSetValue}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n item-id-path=\"_links.self.href\"\n first=${ifDefined(this.templateSets)}\n class=\"sm-col-span-2\"\n infer=\"template-set-uri\"\n .selectedItem=${this.__templateSet ?? null}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0 sm-col-span-2\"\n first=${ifDefined(this.__itemsHref)}\n limit=\"5\"\n .item=${renderItemCard}\n .form=${this.data ? renderItemForm : null}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"applied-coupon-codes\"\n class=\"min-w-0 sm-col-span-2\"\n first=${ifDefined(this.data?._links['fx:applied_coupon_codes'].href)}\n limit=\"5\"\n item=\"foxy-applied-coupon-code-card\"\n form=${ifDefined(this.data ? 'foxy-applied-coupon-code-form' : void 0)}\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:custom_fields'].href)}\n limit=\"5\"\n item=\"foxy-custom-field-card\"\n form=${ifDefined(this.data ? 'foxy-custom-field-form' : void 0)}\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=${ifDefined(this.data ? 'foxy-attribute-form' : void 0)}\n alert\n >\n </foxy-internal-async-list-control>\n\n <div class=\"grid gap-l\">\n <div>\n <foxy-i18n\n class=\"text-l font-medium leading-s block\"\n infer=\"\"\n key=\"billing_section_title\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-s text-secondary leading-s block\"\n infer=\"\"\n key=\"billing_section_description\"\n >\n </foxy-i18n>\n </div>\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control infer=\"billing-first-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"billing-last-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"billing-company\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"billing-phone\"></foxy-internal-text-control>\n\n <foxy-internal-text-control\n property=\"billing_address1\"\n infer=\"billing-address-one\"\n class=\"col-span-2\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n property=\"billing_address2\"\n infer=\"billing-address-two\"\n class=\"col-span-2\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control infer=\"billing-country\" .options=${countryOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"billing-region\" .options=${billingRegionOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-text-control infer=\"billing-city\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"billing-postal-code\"></foxy-internal-text-control>\n </div>\n </div>\n\n <div class=\"grid gap-l\">\n <div>\n <foxy-i18n\n class=\"text-l font-medium leading-s block\"\n infer=\"\"\n key=\"shipping_section_title\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-s text-secondary leading-s block\"\n infer=\"\"\n key=\"shipping_section_description\"\n >\n </foxy-i18n>\n </div>\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control infer=\"shipping-first-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"shipping-last-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"shipping-company\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"shipping-phone\"></foxy-internal-text-control>\n\n <foxy-internal-text-control\n property=\"shipping_address1\"\n infer=\"shipping-address-one\"\n class=\"col-span-2\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n property=\"shipping_address2\"\n infer=\"shipping-address-two\"\n class=\"col-span-2\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control infer=\"shipping-country\" .options=${countryOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"shipping-region\" .options=${shippingRegionOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-text-control infer=\"shipping-city\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"shipping-postal-code\"></foxy-internal-text-control>\n </div>\n </div>\n\n <div class=\"leading-m sm-col-span-2\">\n <div class=\"text-xl font-medium mb-s\">\n ${this.__renderTotalOrder(currencyCode, currencyDisplay)}\n </div>\n <div class=\"border-t border-contrast-10 mb-s\"></div>\n ${this.__renderTotals(currencyCode, currencyDisplay)}\n ${this.__renderDiscounts(currencyCode, currencyDisplay)}\n </div>\n\n ${this.data\n ? html`\n <div class=\"grid gap-s sm-grid-cols-2 sm-gap-l sm-col-span-2\">\n <foxy-internal-cart-form-view-as-customer-control infer=\"view-as-customer\">\n </foxy-internal-cart-form-view-as-customer-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n </div>\n `\n : html`<foxy-internal-submit-control infer=\"create\"></foxy-internal-submit-control>`}\n </div>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__shippingRegionsHref)}\n id=${this.__shippingRegionsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__billingRegionsHref)}\n id=${this.__billingRegionsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__countriesHref)}\n id=${this.__countriesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__customerHref)}\n id=${this.__customerLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__discountsHref)}\n id=${this.__discountsLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__defaultTemplateSetHref)}\n id=${this.__defaultTemplateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__localeCodesHelperHref)}\n id=${this.__localeCodesHelperLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__templateSetHref)}\n id=${this.__templateSetLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__storeHref)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __defaultTemplateSetHref() {\n const templateSetUri = this.data?.template_set_uri;\n\n if (templateSetUri === '') {\n try {\n const url = new URL(this.__store?._links['fx:template_sets'].href ?? '');\n url.searchParams.set('code', 'DEFAULT');\n return url.toString();\n } catch {\n //\n }\n }\n }\n\n private get __localeCodesHelperHref() {\n if (this.__defaultTemplateSetHref || this.__templateSetHref) {\n return this.localeCodes ?? void 0;\n }\n }\n\n private get __shippingRegionsHref() {\n try {\n const url = new URL(this.regions ?? '');\n const code = this.form.shipping_country;\n if (code) url.searchParams.set('country_code', code);\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __billingRegionsHref() {\n try {\n const url = new URL(this.regions ?? '');\n const code = this.form.billing_country;\n if (code) url.searchParams.set('country_code', code);\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __templateSetHref() {\n return this.form.template_set_uri || void 0;\n }\n\n private get __customersHref() {\n try {\n const url = new URL(this.customers ?? '');\n url.searchParams.set('is_anonymous', this.__isGuestMode ? '1' : '0');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __countriesHref() {\n return this.countries ?? void 0;\n }\n\n private get __discountsHref() {\n try {\n const url = new URL(this.data?._links['fx:discounts'].href ?? '');\n url.searchParams.set('limit', '300');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __customerHref() {\n return this.form.customer_uri || void 0;\n }\n\n private get __itemsHref() {\n try {\n const url = new URL(this.data?._links['fx:items'].href ?? '');\n url.searchParams.set('zoom', 'item_options');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __storeHref() {\n return this.data?._links['fx:store']?.href;\n }\n\n private get __defaultTemplateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSets>>;\n const selector = `#${this.__defaultTemplateSetLoaderId}`;\n const loader = this.renderRoot.querySelector<Loader>(selector);\n return loader?.data?._embedded['fx:template_sets'][0] ?? null;\n }\n\n private get __localeCodesHelper() {\n type Loader = NucleonElement<Resource<Rels.LocaleCodes>>;\n const selector = `#${this.__localeCodesHelperLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __shippingRegions() {\n type Loader = NucleonElement<Resource<Rels.Regions>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__shippingRegionsLoaderId}`);\n return loader?.data?.values;\n }\n\n private get __billingRegions() {\n type Loader = NucleonElement<Resource<Rels.Regions>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__billingRegionsLoaderId}`);\n return loader?.data?.values;\n }\n\n private get __templateSet() {\n type Loader = NucleonElement<Resource<Rels.TemplateSet>>;\n const selector = `#${this.__templateSetLoaderId}`;\n return this.renderRoot.querySelector<Loader>(selector)?.data ?? null;\n }\n\n private get __discounts() {\n type Loader = NucleonElement<Resource<Rels.Discounts>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__discountsLoaderId}`);\n }\n\n private get __countriesHelper() {\n type Loader = NucleonElement<Resource<Rels.Countries>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__countriesHelperLoaderId}`);\n return loader?.data?.values;\n }\n\n private get __customer() {\n type Loader = NucleonElement<Resource<Rels.Customer>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__customerLoaderId}`)?.data;\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 __renderTotalOrder(currency: string | null, currencyDisplay: string | undefined) {\n const data = this.data;\n if (!data || !currency || !currencyDisplay) return html`--`;\n\n const options = { amount: `${data.total_order} ${currency}`, currencyDisplay };\n return html`<foxy-i18n infer=\"totals\" key=\"total_order\" .options=${options}></foxy-i18n>`;\n }\n\n private __renderTotals(currency: string | null, currencyDisplay: string | undefined) {\n const keys = ['total_item_price', 'total_shipping', 'total_tax'] as const;\n const data = this.data;\n const isPriceReady = data && currency && currencyDisplay;\n\n return keys.map(key => {\n const options = { amount: `${data?.[key]} ${currency}`, currencyDisplay };\n\n return html`\n <div data-testid=${key} class=\"flex justify-between text-m text-secondary\">\n <foxy-i18n key=${key} infer=\"totals\"></foxy-i18n>\n ${isPriceReady\n ? html`<foxy-i18n infer=\"totals\" key=\"price\" .options=${options}></foxy-i18n>`\n : html`<span>--</span>`}\n </div>\n `;\n });\n }\n\n private __renderDiscounts(currency: string | null, currencyDisplay: string | undefined) {\n const discounts = this.__discounts?.data?._embedded['fx:discounts'];\n const isPriceReady = currency && currencyDisplay;\n\n return discounts?.map(discount => {\n const options = { amount: `${discount.amount} ${currency}`, currencyDisplay };\n\n return html`\n <div data-testclass=\"discount\" class=\"flex justify-between text-m text-secondary\">\n <span>${discount.name} &bull; ${discount.code}</span>\n ${isPriceReady\n ? html`<foxy-i18n infer=\"totals\" key=\"price\" .options=${options}></foxy-i18n>`\n : html`<span>--</span>`}\n </div>\n `;\n });\n }\n}\n"]}
1
+ {"version":3,"file":"CartForm.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/CartForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { Type } from '../QueryBuilder/types';\nimport { html } from 'lit-html';\n\nconst NS = 'cart-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing carts (`fx:cart`).\n *\n * @element foxy-cart-form\n * @since 1.21.0\n */\nexport class CartForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n paymentCardEmbedUrl: { attribute: 'payment-card-embed-url' },\n itemCategories: { attribute: 'item-categories' },\n templateSets: { attribute: 'template-sets' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n customers: {},\n countries: {},\n regions: {},\n coupons: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ billing_first_name: v }) => !v || v.length <= 50 || 'billing-first-name:v8n_too_long',\n ({ billing_last_name: v }) => !v || v.length <= 50 || 'billing-last-name:v8n_too_long',\n ({ billing_state: v }) => !v || v.length <= 50 || 'billing-state:v8n_too_long',\n ({ billing_city: v }) => !v || v.length <= 50 || 'billing-city:v8n_too_long',\n ({ billing_phone: v }) => !v || v.length <= 50 || 'billing-phone:v8n_too_long',\n ({ billing_company: v }) => !v || v.length <= 50 || 'billing-company:v8n_too_long',\n ({ billing_address2: v }) => !v || v.length <= 100 || 'billing-address-two:v8n_too_long',\n ({ billing_address1: v }) => !v || v.length <= 100 || 'billing-address-one:v8n_too_long',\n ({ billing_postal_code: v }) => !v || v.length <= 50 || 'billing-postal-code:v8n_too_long',\n ({ shipping_first_name: v }) => !v || v.length <= 50 || 'shipping-first-name:v8n_too_long',\n ({ shipping_last_name: v }) => !v || v.length <= 50 || 'shipping-last-name:v8n_too_long',\n ({ shipping_state: v }) => !v || v.length <= 50 || 'shipping-state:v8n_too_long',\n ({ shipping_city: v }) => !v || v.length <= 50 || 'shipping-city:v8n_too_long',\n ({ shipping_phone: v }) => !v || v.length <= 50 || 'shipping-phone:v8n_too_long',\n ({ shipping_company: v }) => !v || v.length <= 50 || 'shipping-company:v8n_too_long',\n ({ shipping_address2: v }) => !v || v.length <= 100 || 'shipping-address-two:v8n_too_long',\n ({ shipping_address1: v }) => !v || v.length <= 100 || 'shipping-address-one:v8n_too_long',\n ({ shipping_postal_code: v }) => !v || v.length <= 50 || 'shipping-postal-code:v8n_too_long',\n ];\n }\n\n /** Payment Card Embed configuration URL. The form will append template set parameter on its own. */\n paymentCardEmbedUrl: string | null = null;\n\n /** URL of the `fx:item_categories` collection for the store. */\n itemCategories: string | null = null;\n\n /** URL of the `fx:template_sets` collection for the store. */\n templateSets: string | null = null;\n\n /** URL of the `fx:locale_codes` property helper. */\n localeCodes: string | null = null;\n\n /** URL of the `fx:languages` property helper. */\n languages: string | null = null;\n\n /** URL of the `fx:customers` collection for the store. */\n customers: string | null = null;\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** URL of the `fx:coupons` collection for the store. */\n coupons: string | null = null;\n\n private readonly __languagesLoaderId = 'languagesLoader';\n\n private readonly __customerLoaderId = 'customerLoader';\n\n private readonly __paymentMethodUriGetDisplayValueOptions = (\n payments: Resource<Rels.Payments> | null,\n defaultContext: string\n ) => {\n const payment = payments?._embedded?.['fx:payments']?.[0] ?? null;\n\n let ccExpMonth: string | null;\n let ccExpYear: string | null;\n let ccLast4: string | null;\n let ccType: string | null;\n\n if (payment) {\n ccExpMonth = payment.cc_exp_month;\n ccExpYear = payment.cc_exp_year;\n ccLast4 = payment.cc_number_masked?.replace(/x/g, '');\n ccType = payment.cc_type;\n } else {\n const customer = this.__customer;\n const defaultPaymentMethod = customer?._embedded['fx:default_payment_method'];\n\n ccExpMonth = defaultPaymentMethod?.cc_exp_month ?? null;\n ccExpYear = defaultPaymentMethod?.cc_exp_year ?? null;\n ccLast4 = defaultPaymentMethod?.cc_number_masked?.replace(/x/g, '') ?? null;\n ccType = defaultPaymentMethod?.cc_type ?? null;\n }\n\n return {\n cc_exp_month: ccExpMonth ?? '',\n cc_exp_year: ccExpYear ?? '',\n cc_last4: ccLast4 ?? '',\n cc_type: ccType ?? '',\n context: defaultContext || (ccLast4 && ccExpMonth && ccExpYear && ccType ? '' : 'empty'),\n };\n };\n\n private readonly __paymentMethodUriSetValue = (transactionUrl: string) => {\n try {\n // TODO use links instead of constructing the URL manually\n const url = new URL(transactionUrl);\n url.search = '';\n url.pathname += '/payments';\n this.edit({ payment_method_uri: url.toString() });\n } catch (err) {\n this.edit({ payment_method_uri: '' });\n }\n };\n\n private readonly __paymentMethodUriFilters: Option[] = [\n {\n label: 'filter_type',\n type: Type.String,\n path: 'payments:type',\n list: [\n { label: 'filter_type_value_purchase_order', value: 'purchase_order' },\n { label: 'filter_type_value_amazon_mws', value: 'amazon_mws' },\n { label: 'filter_type_value_paypal_ec', value: 'paypal_ec' },\n { label: 'filter_type_value_paypal', value: 'paypal' },\n { label: 'filter_type_value_hosted', value: 'hosted' },\n { label: 'filter_type_value_ogone', value: 'ogone' },\n ],\n },\n {\n label: 'filter_cc_type',\n type: Type.String,\n path: 'payments:cc_type',\n list: [\n { label: 'filter_cc_type_value_mastercard', value: 'mastercard' },\n { label: 'filter_cc_type_value_discover', value: 'discover' },\n { label: 'filter_cc_type_value_unionpay', value: 'unionpay' },\n { label: 'filter_cc_type_value_maestro', value: 'maestro' },\n { label: 'filter_cc_type_value_diners', value: 'diners' },\n { label: 'filter_cc_type_value_visa', value: 'visa' },\n { label: 'filter_cc_type_value_amex', value: 'amex' },\n { label: 'filter_cc_type_value_jcb', value: 'jcb' },\n ],\n },\n {\n label: 'filter_cc_number_masked',\n type: Type.String,\n path: 'payments:cc_number_masked',\n },\n ];\n\n private readonly __customerUriSetValue = (newValue: string) => {\n this.edit({ customer_uri: newValue, customer_email: '' });\n };\n\n private readonly __customerUriOptions: Option[] = [\n { label: 'filter_email', path: 'email', type: Type.String },\n {\n label: 'filter_is_anonymous',\n path: 'is_anonymous',\n type: Type.String,\n list: [\n { value: 'false', label: 'filter_is_anonymous_value_false' },\n { value: 'true', label: 'filter_is_anonymous_value_true' },\n ],\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (this.form.customer_uri) {\n alwaysMatch.unshift('general:customer-email');\n } else {\n alwaysMatch.unshift('billing:payment-method-uri');\n }\n\n if (this.data) {\n if (!this.form.use_customer_shipping_address) {\n alwaysMatch.unshift('shipping:shipping-address');\n }\n } else {\n alwaysMatch.unshift(\n 'applied-coupon-codes',\n 'custom-fields',\n 'attributes',\n 'shipping',\n 'billing',\n 'totals',\n 'items'\n );\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderHeaderActions(): TemplateResult {\n return html`\n <foxy-internal-cart-form-create-session-action infer=\"view-as-customer\">\n </foxy-internal-cart-form-create-session-action>\n `;\n }\n\n renderBody(): TemplateResult {\n const links = this.data?._links;\n const customer = this.__customer;\n const customerAddresses = customer?._links['fx:customer_addresses'].href;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.templateSets ?? void 0)}\n infer=\"template-set-uri\"\n item=\"foxy-template-set-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"language\"\n .options=${this.__languageOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.customers ?? void 0)}\n infer=\"customer-uri\"\n item=\"foxy-customer-card\"\n .setValue=${this.__customerUriSetValue}\n .filters=${this.__customerUriOptions}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"customer-email\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"items\"\n class=\"min-w-0\"\n first=${ifDefined(this.__itemsHref)}\n alert\n item=\"foxy-item-card\"\n form=\"foxy-item-form\"\n .related=${this.href ? [this.href] : []}\n .itemProps=${{ 'locale-codes': this.localeCodes ?? '' }}\n .formProps=${{\n 'customer-addresses': customerAddresses ?? '',\n 'item-categories': this.itemCategories ?? '',\n 'locale-codes': this.localeCodes ?? '',\n 'coupons': this.coupons ?? '',\n }}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-cart-form-totals-control class=\"min-w-0\" infer=\"totals\">\n </foxy-internal-cart-form-totals-control>\n\n <foxy-internal-async-list-control\n infer=\"applied-coupon-codes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:applied_coupon_codes'].href)}\n item=\"foxy-applied-coupon-code-card\"\n form=\"foxy-applied-coupon-code-form\"\n alert\n .related=${this.href ? [this.href] : []}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-summary-control infer=\"billing\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n first=${ifDefined(this.__transactionsWithPaymentsUrl)}\n infer=\"payment-method-uri\"\n item=\"foxy-internal-cart-form-payment-method-card\"\n form=\"foxy-internal-cart-form-payment-method-form\"\n .getDisplayValueOptions=${this.__paymentMethodUriGetDisplayValueOptions}\n .formProps=${{\n 'default-payment-method': customer?._links['fx:default_payment_method'].href ?? '',\n 'payment-card-embed-url': this.__pickerPaymentCardEmbedUrl ?? '',\n }}\n .setValue=${this.__paymentMethodUriSetValue}\n .filters=${this.__paymentMethodUriFilters}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"billing-address\"\n type=\"billing\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"shipping\">\n <foxy-internal-switch-control infer=\"use-customer-shipping-address\" invert>\n </foxy-internal-switch-control>\n\n <foxy-internal-cart-form-address-summary-item\n countries=${ifDefined(this.countries ?? void 0)}\n regions=${ifDefined(this.regions ?? void 0)}\n infer=\"shipping-address\"\n type=\"shipping\"\n .customer=${customer}\n >\n </foxy-internal-cart-form-address-summary-item>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n infer=\"custom-fields\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:custom_fields'].href)}\n limit=\"5\"\n item=\"foxy-custom-field-card\"\n form=\"foxy-custom-field-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(links?.['fx:attributes'].href)}\n limit=\"5\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.languages ?? void 0)}\n id=${this.__languagesLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__customerHref)}\n id=${this.__customerLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __transactionsWithPaymentsUrl() {\n try {\n const url = new URL(this.__customer?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'payments');\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __pickerPaymentCardEmbedUrl() {\n try {\n const url = new URL(this.paymentCardEmbedUrl ?? '');\n const id = getResourceId(this.form.template_set_uri ?? '');\n if (id !== null) {\n url.searchParams.set('template_set_id', String(id));\n return url.toString();\n }\n } catch {\n // ignore\n }\n }\n\n private get __customerHref() {\n try {\n const url = new URL(this.form.customer_uri ?? '');\n url.searchParams.set(\n 'zoom',\n 'default_payment_method,default_billing_address,default_shipping_address'\n );\n return url.toString();\n } catch {\n // ignore\n }\n }\n\n private get __itemsHref() {\n try {\n const url = new URL(this.data?._links['fx:items'].href ?? '');\n url.searchParams.set('zoom', 'item_options');\n return url.toString();\n } catch {\n //\n }\n }\n\n private get __languageOptions() {\n type Loader = NucleonElement<Resource<Rels.Languages>>;\n const loader = this.renderRoot.querySelector<Loader>(`#${this.__languagesLoaderId}`);\n const values = Object.entries(loader?.data?.values ?? {});\n return values.map(([value, rawLabel]) => ({ rawLabel, value }));\n }\n\n private get __customer() {\n type Loader = NucleonElement<\n Resource<\n Rels.Customer,\n { zoom: ['default_payment_method', 'default_shipping_address', 'default_billing_address'] }\n >\n >;\n\n return this.renderRoot.querySelector<Loader>(`#${this.__customerLoaderId}`)?.data;\n }\n}\n"]}
@@ -1,21 +1,26 @@
1
- import '../../internal/InternalAsyncComboBoxControl/index';
1
+ import '../../internal/InternalResourcePickerControl/index';
2
2
  import '../../internal/InternalAsyncListControl/index';
3
+ import '../../internal/InternalSummaryControl/index';
4
+ import '../../internal/InternalSwitchControl/index';
3
5
  import '../../internal/InternalSelectControl/index';
4
- import '../../internal/InternalSubmitControl/index';
5
- import '../../internal/InternalDeleteControl/index';
6
6
  import '../../internal/InternalTextControl/index';
7
7
  import '../../internal/InternalForm/index';
8
8
  import '../AppliedCouponCodeCard/index';
9
9
  import '../AppliedCouponCodeForm/index';
10
10
  import '../CustomFieldCard/index';
11
11
  import '../CustomFieldForm/index';
12
+ import '../TemplateSetCard/index';
12
13
  import '../NucleonElement/index';
13
14
  import '../AttributeCard/index';
14
15
  import '../AttributeForm/index';
15
- import '../DiscountCard/index';
16
+ import '../CustomerCard/index';
16
17
  import '../ItemCard/index';
17
18
  import '../ItemForm/index';
18
19
  import '../I18n/index';
19
- import './internal/InternalCartFormViewAsCustomerControl/index';
20
+ import './internal/InternalCartFormCreateSessionAction/index';
21
+ import './internal/InternalCartFormAddressSummaryItem/index';
22
+ import './internal/InternalCartFormPaymentMethodForm/index';
23
+ import './internal/InternalCartFormPaymentMethodCard/index';
24
+ import './internal/InternalCartFormTotalsControl/index';
20
25
  import { CartForm } from './CartForm';
21
26
  export { CartForm };
@@ -1,22 +1,27 @@
1
- import "../../internal/InternalAsyncComboBoxControl/index.js";
1
+ import "../../internal/InternalResourcePickerControl/index.js";
2
2
  import "../../internal/InternalAsyncListControl/index.js";
3
+ import "../../internal/InternalSummaryControl/index.js";
4
+ import "../../internal/InternalSwitchControl/index.js";
3
5
  import "../../internal/InternalSelectControl/index.js";
4
- import "../../internal/InternalSubmitControl/index.js";
5
- import "../../internal/InternalDeleteControl/index.js";
6
6
  import "../../internal/InternalTextControl/index.js";
7
7
  import "../../internal/InternalForm/index.js";
8
8
  import "../AppliedCouponCodeCard/index.js";
9
9
  import "../AppliedCouponCodeForm/index.js";
10
10
  import "../CustomFieldCard/index.js";
11
11
  import "../CustomFieldForm/index.js";
12
+ import "../TemplateSetCard/index.js";
12
13
  import "../NucleonElement/index.js";
13
14
  import "../AttributeCard/index.js";
14
15
  import "../AttributeForm/index.js";
15
- import "../DiscountCard/index.js";
16
+ import "../CustomerCard/index.js";
16
17
  import "../ItemCard/index.js";
17
18
  import "../ItemForm/index.js";
18
19
  import "../I18n/index.js";
19
- import "./internal/InternalCartFormViewAsCustomerControl/index.js";
20
+ import "./internal/InternalCartFormCreateSessionAction/index.js";
21
+ import "./internal/InternalCartFormAddressSummaryItem/index.js";
22
+ import "./internal/InternalCartFormPaymentMethodForm/index.js";
23
+ import "./internal/InternalCartFormPaymentMethodCard/index.js";
24
+ import "./internal/InternalCartFormTotalsControl/index.js";
20
25
  import { CartForm } from "./CartForm.js";
21
26
  customElements.define('foxy-cart-form', CartForm);
22
27
  export { CartForm };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/index.ts"],"names":[],"mappings":"AAAA,8DAA2D;AAC3D,0DAAuD;AACvD,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,2CAAwC;AACxC,2CAAwC;AACxC,qCAAkC;AAClC,qCAAkC;AAClC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,8BAA2B;AAC3B,8BAA2B;AAC3B,0BAAuB;AAEvB,mEAAgE;AAEhE,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AAEtC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncComboBoxControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalSubmitControl/index';\nimport '../../internal/InternalDeleteControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../AppliedCouponCodeCard/index';\nimport '../AppliedCouponCodeForm/index';\nimport '../CustomFieldCard/index';\nimport '../CustomFieldForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../DiscountCard/index';\nimport '../ItemCard/index';\nimport '../ItemForm/index';\nimport '../I18n/index';\n\nimport './internal/InternalCartFormViewAsCustomerControl/index';\n\nimport { CartForm } from './CartForm';\n\ncustomElements.define('foxy-cart-form', CartForm);\n\nexport { CartForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/CartForm/index.ts"],"names":[],"mappings":"AAAA,+DAA4D;AAC5D,0DAAuD;AACvD,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,2CAAwC;AACxC,2CAAwC;AACxC,qCAAkC;AAClC,qCAAkC;AAClC,qCAAkC;AAClC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,8BAA2B;AAC3B,8BAA2B;AAC3B,0BAAuB;AAEvB,iEAA8D;AAC9D,gEAA6D;AAC7D,+DAA4D;AAC5D,+DAA4D;AAC5D,2DAAwD;AAExD,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AAEtC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import '../../internal/InternalResourcePickerControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalSwitchControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../AppliedCouponCodeCard/index';\nimport '../AppliedCouponCodeForm/index';\nimport '../CustomFieldCard/index';\nimport '../CustomFieldForm/index';\nimport '../TemplateSetCard/index';\nimport '../NucleonElement/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../CustomerCard/index';\nimport '../ItemCard/index';\nimport '../ItemForm/index';\nimport '../I18n/index';\n\nimport './internal/InternalCartFormCreateSessionAction/index';\nimport './internal/InternalCartFormAddressSummaryItem/index';\nimport './internal/InternalCartFormPaymentMethodForm/index';\nimport './internal/InternalCartFormPaymentMethodCard/index';\nimport './internal/InternalCartFormTotalsControl/index';\n\nimport { CartForm } from './CartForm';\n\ncustomElements.define('foxy-cart-form', CartForm);\n\nexport { CartForm };\n"]}
@@ -0,0 +1,33 @@
1
+ import type { CSSResultArray, PropertyDeclarations } from 'lit-element';
2
+ import type { ZoomedCustomer } from './types';
3
+ import type { TemplateResult } from 'lit-html';
4
+ import { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';
5
+ import { BooleanSelector } from '@foxy.io/sdk/core';
6
+ declare const InternalCartFormAddressSummaryItem_base: typeof InternalEditableControl;
7
+ export declare class InternalCartFormAddressSummaryItem extends InternalCartFormAddressSummaryItem_base {
8
+ static get properties(): PropertyDeclarations;
9
+ static get styles(): CSSResultArray;
10
+ /** URL of the `fx:countries` property helper. */
11
+ countries: string | null;
12
+ /** Customer resource with billing and shipping address zoomed. */
13
+ customer: ZoomedCustomer | null;
14
+ /** URL of the `fx:regions` property helper. */
15
+ regions: string | null;
16
+ /** Type of the address. Billing by default. */
17
+ type: 'billing' | 'shipping' | null;
18
+ get disabledSelector(): BooleanSelector;
19
+ renderControl(): TemplateResult;
20
+ private __renderAddressPart;
21
+ private __renderTextField;
22
+ private __getDisplayText;
23
+ private __getPlaceholder;
24
+ private get __countriesLoader();
25
+ private get __countryOptions();
26
+ private get __isAddressEmpty();
27
+ private get __regionOptions();
28
+ private get __regionsLoader();
29
+ private get __mergedAddress();
30
+ private get __regionsUrl();
31
+ private get __dialog();
32
+ }
33
+ export {};
@@ -0,0 +1,293 @@
1
+ import { InternalEditableControl } from "../../../../internal/InternalEditableControl/InternalEditableControl.js";
2
+ import { BooleanSelector } from '@foxy.io/sdk/core';
3
+ import { ResponsiveMixin } from "../../../../../mixins/responsive.js";
4
+ import { ifDefined } from 'lit-html/directives/if-defined';
5
+ import { classMap } from "../../../../../utils/class-map.js";
6
+ import { style } from "./style.js";
7
+ import { html } from 'lit-html';
8
+ export class InternalCartFormAddressSummaryItem extends ResponsiveMixin(InternalEditableControl) {
9
+ constructor() {
10
+ super(...arguments);
11
+ /** URL of the `fx:countries` property helper. */
12
+ this.countries = null;
13
+ /** Customer resource with billing and shipping address zoomed. */
14
+ this.customer = null;
15
+ /** URL of the `fx:regions` property helper. */
16
+ this.regions = null;
17
+ /** Type of the address. Billing by default. */
18
+ this.type = null;
19
+ }
20
+ static get properties() {
21
+ return {
22
+ ...super.properties,
23
+ countries: {},
24
+ customer: { type: Object },
25
+ regions: {},
26
+ type: {},
27
+ };
28
+ }
29
+ static get styles() {
30
+ return [...super.styles, style];
31
+ }
32
+ get disabledSelector() {
33
+ var _a;
34
+ const alwaysMatch = [super.disabledSelector.toString()];
35
+ if (!((_a = this.__regionsLoader) === null || _a === void 0 ? void 0 : _a.data))
36
+ alwaysMatch.unshift('address:state');
37
+ return new BooleanSelector(alwaysMatch.join(' ').toString());
38
+ }
39
+ renderControl() {
40
+ var _a, _b;
41
+ const regionOptions = this.__regionOptions;
42
+ const addressType = (_a = this.type) !== null && _a !== void 0 ? _a : 'billing';
43
+ const address = this.__mergedAddress;
44
+ return html `
45
+ <div class="flex flex-col gap-m sm-flex-row items-start leading-xs">
46
+ <div class="flex-1">
47
+ <p class="text-m text-body">${this.label}</p>
48
+ <p class="text-s text-secondary">${this.helperText}</p>
49
+ <p class="text-s text-error" ?hidden=${this.disabled || this.readonly}>
50
+ ${this._errorMessage}
51
+ </p>
52
+ </div>
53
+
54
+ <button
55
+ aria-label=${this.t('edit')}
56
+ class=${classMap({
57
+ 'text-left sm-text-right transition-colors transition-opacity': true,
58
+ 'text-body cursor-pointer hover-opacity-80': !this.disabled && !this.readonly,
59
+ 'text-secondary': this.readonly,
60
+ 'text-disabled': this.disabled,
61
+ 'font-medium': !this.readonly,
62
+ })}
63
+ ?disabled=${this.disabled || this.readonly}
64
+ @click=${() => { var _a; return (_a = this.__dialog) === null || _a === void 0 ? void 0 : _a.showModal(); }}
65
+ >
66
+ ${this.__isAddressEmpty
67
+ ? html `<foxy-i18n infer="" key="not_set"></foxy-i18n>`
68
+ : html `
69
+ <div>
70
+ ${this.__renderAddressPart(address.first_name)}
71
+ ${this.__renderAddressPart(address.last_name)}
72
+ </div>
73
+ <div>${this.__renderAddressPart(address.company)}</div>
74
+ <div>${this.__renderAddressPart(address.phone)}</div>
75
+ <div>
76
+ ${this.__renderAddressPart(address.address1)}
77
+ ${this.__renderAddressPart(address.address2)}
78
+ ${this.__renderAddressPart(address.city)}
79
+ ${this.__renderAddressPart(address.state)}
80
+ ${this.__renderAddressPart(address.postal_code)}
81
+ ${this.__renderAddressPart(address.country)}
82
+ </div>
83
+ `}
84
+ </button>
85
+ </div>
86
+
87
+ <dialog id="dialog" class="p-m bg-base shadow-xxl space-y-m">
88
+ <h2 class="text-xl font-medium">
89
+ <foxy-i18n infer="" key="label"></foxy-i18n>
90
+ </h2>
91
+
92
+ <foxy-internal-summary-control infer="name">
93
+ ${this.__renderTextField(address.first_name)} ${this.__renderTextField(address.last_name)}
94
+ </foxy-internal-summary-control>
95
+
96
+ <foxy-internal-summary-control infer="address">
97
+ ${this.__renderTextField(address.address1)} ${this.__renderTextField(address.address2)}
98
+ ${this.__renderTextField(address.city)}
99
+
100
+ <foxy-internal-select-control
101
+ placeholder=${ifDefined(this.__getPlaceholder(address.country))}
102
+ property="${addressType}_country"
103
+ layout="summary-item"
104
+ infer="country"
105
+ .options=${this.__countryOptions}
106
+ >
107
+ </foxy-internal-select-control>
108
+
109
+ ${regionOptions.length > 0
110
+ ? html `
111
+ <foxy-internal-select-control
112
+ placeholder=${ifDefined(this.__getPlaceholder(address.state))}
113
+ property="${addressType}_state"
114
+ layout="summary-item"
115
+ infer="state"
116
+ .options=${regionOptions}
117
+ >
118
+ </foxy-internal-select-control>
119
+ `
120
+ : this.__renderTextField(address.state)}
121
+ ${this.__renderTextField(address.postal_code)}
122
+ </foxy-internal-summary-control>
123
+
124
+ <foxy-internal-summary-control infer="extra">
125
+ ${this.__renderTextField(address.company)} ${this.__renderTextField(address.phone)}
126
+ </foxy-internal-summary-control>
127
+
128
+ <p class="text-s text-secondary">
129
+ <foxy-i18n infer="" key="form_helper_text"></foxy-i18n>
130
+ </p>
131
+
132
+ <div class="flex justify-between gap-m">
133
+ <vaadin-button
134
+ theme="error"
135
+ ?disabled=${this.disabled}
136
+ ?hidden=${this.readonly}
137
+ @click=${() => {
138
+ var _a;
139
+ (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.edit({
140
+ [`${addressType}_first_name`]: null,
141
+ [`${addressType}_last_name`]: null,
142
+ [`${addressType}_company`]: null,
143
+ [`${addressType}_address1`]: null,
144
+ [`${addressType}_address2`]: null,
145
+ [`${addressType}_city`]: null,
146
+ [`${addressType}_state`]: null,
147
+ [`${addressType}_postal_code`]: null,
148
+ [`${addressType}_country`]: null,
149
+ [`${addressType}_phone`]: null,
150
+ });
151
+ }}
152
+ >
153
+ <foxy-i18n infer="" key="reset"></foxy-i18n>
154
+ </vaadin-button>
155
+
156
+ <vaadin-button
157
+ theme="primary"
158
+ ?disabled=${this.disabled}
159
+ @click=${() => { var _a; return (_a = this.__dialog) === null || _a === void 0 ? void 0 : _a.close(); }}
160
+ >
161
+ <foxy-i18n infer="" key="done"></foxy-i18n>
162
+ </vaadin-button>
163
+ </div>
164
+ </dialog>
165
+
166
+ <foxy-nucleon
167
+ class="hidden"
168
+ infer=""
169
+ href=${ifDefined((_b = this.countries) !== null && _b !== void 0 ? _b : undefined)}
170
+ id="countriesLoader"
171
+ @update=${() => this.requestUpdate()}
172
+ >
173
+ </foxy-nucleon>
174
+
175
+ <foxy-nucleon
176
+ class="hidden"
177
+ infer=""
178
+ href=${ifDefined(this.__regionsUrl)}
179
+ id="regionsLoader"
180
+ @update=${() => this.requestUpdate()}
181
+ >
182
+ </foxy-nucleon>
183
+ `;
184
+ }
185
+ __renderAddressPart(entry) {
186
+ const text = this.__getDisplayText(entry);
187
+ return html `
188
+ <span
189
+ class=${classMap({
190
+ 'text-success bg-success-10': entry.modified && !this.disabled,
191
+ 'bg-contrast-5': entry.modified && this.disabled,
192
+ 'inline-block': !!text,
193
+ 'rounded-s': true,
194
+ 'hidden': !text,
195
+ })}
196
+ >
197
+ ${text}
198
+ </span>
199
+ `;
200
+ }
201
+ __renderTextField(entry) {
202
+ var _a;
203
+ return html `
204
+ <foxy-internal-text-control
205
+ placeholder=${ifDefined(this.__getPlaceholder(entry))}
206
+ property="${(_a = this.type) !== null && _a !== void 0 ? _a : 'billing'}_${entry.field}"
207
+ layout="summary-item"
208
+ infer=${entry.field.replace(/_/g, '-').replace('1', '-one').replace('2', '-two')}
209
+ @clear=${() => { var _a, _b; return (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.edit({ [`${(_b = this.type) !== null && _b !== void 0 ? _b : 'billing'}_${entry.field}`]: null }); }}
210
+ >
211
+ </foxy-internal-text-control>
212
+ `;
213
+ }
214
+ __getDisplayText(entry) {
215
+ return entry.value || (entry.modified ? '--' : '');
216
+ }
217
+ __getPlaceholder(entry) {
218
+ return entry.modified ? this.t('empty_modified_placeholder') : entry.originalValue || void 0;
219
+ }
220
+ get __countriesLoader() {
221
+ return this.renderRoot.querySelector('#countriesLoader');
222
+ }
223
+ get __countryOptions() {
224
+ var _a, _b, _c;
225
+ return Object.values((_c = (_b = (_a = this.__countriesLoader) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.values) !== null && _c !== void 0 ? _c : {}).map(v => ({
226
+ rawLabel: v.default,
227
+ value: v.cc2,
228
+ }));
229
+ }
230
+ get __isAddressEmpty() {
231
+ return Object.values(this.__mergedAddress).every(entry => this.__getDisplayText(entry) === '');
232
+ }
233
+ get __regionOptions() {
234
+ var _a, _b, _c;
235
+ return Object.values((_c = (_b = (_a = this.__regionsLoader) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.values) !== null && _c !== void 0 ? _c : {}).map(v => ({
236
+ rawLabel: v.default,
237
+ value: v.code,
238
+ }));
239
+ }
240
+ get __regionsLoader() {
241
+ return this.renderRoot.querySelector('#regionsLoader');
242
+ }
243
+ get __mergedAddress() {
244
+ var _a, _b, _c;
245
+ const cart = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.form;
246
+ const type = this.type === 'shipping' ? 'shipping' : 'billing';
247
+ const defaults = (_c = (_b = this.customer) === null || _b === void 0 ? void 0 : _b._embedded[`fx:default_${type}_address`]) !== null && _c !== void 0 ? _c : {};
248
+ const addressFields = [
249
+ 'first_name',
250
+ 'last_name',
251
+ 'company',
252
+ 'address1',
253
+ 'address2',
254
+ 'city',
255
+ 'state',
256
+ 'postal_code',
257
+ 'country',
258
+ 'phone',
259
+ ];
260
+ const address = addressFields.reduce((acc, field) => {
261
+ var _a;
262
+ const cartKey = `${type}_${field}`;
263
+ const cartValue = cart === null || cart === void 0 ? void 0 : cart[cartKey];
264
+ const defaultKey = (field === 'state' ? 'region' : field);
265
+ const defaultValue = defaults === null || defaults === void 0 ? void 0 : defaults[defaultKey];
266
+ acc[field] = {
267
+ originalValue: String(defaultValue !== null && defaultValue !== void 0 ? defaultValue : ''),
268
+ modified: cartValue !== null,
269
+ value: String((_a = cartValue !== null && cartValue !== void 0 ? cartValue : defaultValue) !== null && _a !== void 0 ? _a : ''),
270
+ field,
271
+ };
272
+ return acc;
273
+ }, {});
274
+ return address;
275
+ }
276
+ get __regionsUrl() {
277
+ var _a;
278
+ try {
279
+ const regionsURL = new URL((_a = this.regions) !== null && _a !== void 0 ? _a : '');
280
+ const country = this.__mergedAddress.country.value;
281
+ if (country)
282
+ regionsURL.searchParams.set('country_code', country);
283
+ return regionsURL.toString();
284
+ }
285
+ catch (_b) {
286
+ // ignore
287
+ }
288
+ }
289
+ get __dialog() {
290
+ return this.renderRoot.querySelector('#dialog');
291
+ }
292
+ }
293
+ //# sourceMappingURL=InternalCartFormAddressSummaryItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCartFormAddressSummaryItem.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { AddressEntry, ZoomedCustomer } from './types';\nimport type { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { CartForm } from '../../CartForm';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { InternalEditableControl } from '../../../../internal/InternalEditableControl/InternalEditableControl';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ResponsiveMixin } from '../../../../../mixins/responsive';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../../../utils/class-map';\nimport { style } from './style';\nimport { html } from 'lit-html';\n\nexport class InternalCartFormAddressSummaryItem extends ResponsiveMixin(InternalEditableControl) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countries: {},\n customer: { type: Object },\n regions: {},\n type: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [...super.styles, style];\n }\n\n /** URL of the `fx:countries` property helper. */\n countries: string | null = null;\n\n /** Customer resource with billing and shipping address zoomed. */\n customer: ZoomedCustomer | null = null;\n\n /** URL of the `fx:regions` property helper. */\n regions: string | null = null;\n\n /** Type of the address. Billing by default. */\n type: 'billing' | 'shipping' | null = null;\n\n get disabledSelector(): BooleanSelector {\n const alwaysMatch = [super.disabledSelector.toString()];\n if (!this.__regionsLoader?.data) alwaysMatch.unshift('address:state');\n return new BooleanSelector(alwaysMatch.join(' ').toString());\n }\n\n renderControl(): TemplateResult {\n const regionOptions = this.__regionOptions;\n const addressType = this.type ?? 'billing';\n const address = this.__mergedAddress;\n\n return html`\n <div class=\"flex flex-col gap-m sm-flex-row items-start leading-xs\">\n <div class=\"flex-1\">\n <p class=\"text-m text-body\">${this.label}</p>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n <button\n aria-label=${this.t('edit')}\n class=${classMap({\n 'text-left sm-text-right transition-colors transition-opacity': true,\n 'text-body cursor-pointer hover-opacity-80': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'font-medium': !this.readonly,\n })}\n ?disabled=${this.disabled || this.readonly}\n @click=${() => this.__dialog?.showModal()}\n >\n ${this.__isAddressEmpty\n ? html`<foxy-i18n infer=\"\" key=\"not_set\"></foxy-i18n>`\n : html`\n <div>\n ${this.__renderAddressPart(address.first_name)}\n ${this.__renderAddressPart(address.last_name)}\n </div>\n <div>${this.__renderAddressPart(address.company)}</div>\n <div>${this.__renderAddressPart(address.phone)}</div>\n <div>\n ${this.__renderAddressPart(address.address1)}\n ${this.__renderAddressPart(address.address2)}\n ${this.__renderAddressPart(address.city)}\n ${this.__renderAddressPart(address.state)}\n ${this.__renderAddressPart(address.postal_code)}\n ${this.__renderAddressPart(address.country)}\n </div>\n `}\n </button>\n </div>\n\n <dialog id=\"dialog\" class=\"p-m bg-base shadow-xxl space-y-m\">\n <h2 class=\"text-xl font-medium\">\n <foxy-i18n infer=\"\" key=\"label\"></foxy-i18n>\n </h2>\n\n <foxy-internal-summary-control infer=\"name\">\n ${this.__renderTextField(address.first_name)} ${this.__renderTextField(address.last_name)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"address\">\n ${this.__renderTextField(address.address1)} ${this.__renderTextField(address.address2)}\n ${this.__renderTextField(address.city)}\n\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.country))}\n property=\"${addressType}_country\"\n layout=\"summary-item\"\n infer=\"country\"\n .options=${this.__countryOptions}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control\n placeholder=${ifDefined(this.__getPlaceholder(address.state))}\n property=\"${addressType}_state\"\n layout=\"summary-item\"\n infer=\"state\"\n .options=${regionOptions}\n >\n </foxy-internal-select-control>\n `\n : this.__renderTextField(address.state)}\n ${this.__renderTextField(address.postal_code)}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"extra\">\n ${this.__renderTextField(address.company)} ${this.__renderTextField(address.phone)}\n </foxy-internal-summary-control>\n\n <p class=\"text-s text-secondary\">\n <foxy-i18n infer=\"\" key=\"form_helper_text\"></foxy-i18n>\n </p>\n\n <div class=\"flex justify-between gap-m\">\n <vaadin-button\n theme=\"error\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @click=${() => {\n this.nucleon?.edit({\n [`${addressType}_first_name`]: null,\n [`${addressType}_last_name`]: null,\n [`${addressType}_company`]: null,\n [`${addressType}_address1`]: null,\n [`${addressType}_address2`]: null,\n [`${addressType}_city`]: null,\n [`${addressType}_state`]: null,\n [`${addressType}_postal_code`]: null,\n [`${addressType}_country`]: null,\n [`${addressType}_phone`]: null,\n });\n }}\n >\n <foxy-i18n infer=\"\" key=\"reset\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"primary\"\n ?disabled=${this.disabled}\n @click=${() => this.__dialog?.close()}\n >\n <foxy-i18n infer=\"\" key=\"done\"></foxy-i18n>\n </vaadin-button>\n </div>\n </dialog>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.countries ?? undefined)}\n id=\"countriesLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.__regionsUrl)}\n id=\"regionsLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private __renderAddressPart(entry: AddressEntry) {\n const text = this.__getDisplayText(entry);\n\n return html`\n <span\n class=${classMap({\n 'text-success bg-success-10': entry.modified && !this.disabled,\n 'bg-contrast-5': entry.modified && this.disabled,\n 'inline-block': !!text,\n 'rounded-s': true,\n 'hidden': !text,\n })}\n >\n ${text}\n </span>\n `;\n }\n\n private __renderTextField(entry: AddressEntry) {\n return html`\n <foxy-internal-text-control\n placeholder=${ifDefined(this.__getPlaceholder(entry))}\n property=\"${this.type ?? 'billing'}_${entry.field}\"\n layout=\"summary-item\"\n infer=${entry.field.replace(/_/g, '-').replace('1', '-one').replace('2', '-two')}\n @clear=${() => this.nucleon?.edit({ [`${this.type ?? 'billing'}_${entry.field}`]: null })}\n >\n </foxy-internal-text-control>\n `;\n }\n\n private __getDisplayText(entry: AddressEntry) {\n return entry.value || (entry.modified ? '--' : '');\n }\n\n private __getPlaceholder(entry: AddressEntry) {\n return entry.modified ? this.t('empty_modified_placeholder') : entry.originalValue || void 0;\n }\n\n private get __countriesLoader() {\n type Loader = NucleonElement<Resource<Rels.Countries>>;\n return this.renderRoot.querySelector<Loader>('#countriesLoader');\n }\n\n private get __countryOptions() {\n return Object.values(this.__countriesLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.cc2,\n }));\n }\n\n private get __isAddressEmpty() {\n return Object.values(this.__mergedAddress).every(entry => this.__getDisplayText(entry) === '');\n }\n\n private get __regionOptions() {\n return Object.values(this.__regionsLoader?.data?.values ?? {}).map(v => ({\n rawLabel: v.default,\n value: v.code,\n }));\n }\n\n private get __regionsLoader() {\n type Loader = NucleonElement<Resource<Rels.Regions>>;\n return this.renderRoot.querySelector<Loader>('#regionsLoader');\n }\n\n private get __mergedAddress() {\n type EmbedKey = 'fx:default_billing_address' | 'fx:default_shipping_address';\n\n const cart = (this.nucleon as CartForm | null)?.form;\n const type = this.type === 'shipping' ? 'shipping' : 'billing';\n const defaults = this.customer?._embedded[`fx:default_${type}_address` as EmbedKey] ?? {};\n const addressFields = [\n 'first_name',\n 'last_name',\n 'company',\n 'address1',\n 'address2',\n 'city',\n 'state',\n 'postal_code',\n 'country',\n 'phone',\n ];\n\n const address = addressFields.reduce<Record<string, AddressEntry>>((acc, field) => {\n const cartKey = `${type}_${field}` as keyof typeof cart;\n const cartValue = cart?.[cartKey];\n const defaultKey = (field === 'state' ? 'region' : field) as keyof typeof defaults;\n const defaultValue = defaults?.[defaultKey];\n\n acc[field] = {\n originalValue: String(defaultValue ?? ''),\n modified: cartValue !== null,\n value: String(cartValue ?? defaultValue ?? ''),\n field,\n };\n\n return acc;\n }, {});\n\n return address;\n }\n\n private get __regionsUrl() {\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.__mergedAddress.country.value;\n if (country) regionsURL.searchParams.set('country_code', country);\n return regionsURL.toString();\n } catch {\n // ignore\n }\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector<HTMLDialogElement>('#dialog');\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import '@vaadin/vaadin-button';
2
+ import '../../../../internal/InternalEditableControl/index';
3
+ import '../../../../internal/InternalSelectControl/index';
4
+ import '../../../../internal/InternalTextControl/index';
5
+ import '../../../NucleonElement/index';
6
+ import { InternalCartFormAddressSummaryItem } from './InternalCartFormAddressSummaryItem';
7
+ export { InternalCartFormAddressSummaryItem };