@foxy.io/elements 1.24.0-beta.4 → 1.24.0-beta.6

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 (302) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  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-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-client-card.js +1 -1
  15. package/dist/cdn/foxy-client-form.js +1 -1
  16. package/dist/cdn/foxy-collection-page.js +1 -1
  17. package/dist/cdn/foxy-collection-pages.js +1 -1
  18. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  19. package/dist/cdn/foxy-coupon-card.js +1 -1
  20. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  21. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  22. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-form.js +1 -1
  24. package/dist/cdn/foxy-custom-field-card.js +1 -1
  25. package/dist/cdn/foxy-custom-field-form.js +1 -1
  26. package/dist/cdn/foxy-customer-api.js +1 -1
  27. package/dist/cdn/foxy-customer-card.js +1 -1
  28. package/dist/cdn/foxy-customer-form.js +1 -1
  29. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  30. package/dist/cdn/foxy-customer-portal.js +13 -31
  31. package/dist/cdn/foxy-customer.js +7 -7
  32. package/dist/cdn/foxy-customers-table.js +1 -1
  33. package/dist/cdn/foxy-discount-builder.js +1 -1
  34. package/dist/cdn/foxy-discount-card.js +1 -1
  35. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  36. package/dist/cdn/foxy-donation.js +1 -1
  37. package/dist/cdn/foxy-downloadable-card.js +1 -1
  38. package/dist/cdn/foxy-downloadable-form.js +1 -1
  39. package/dist/cdn/foxy-email-template-card.js +1 -1
  40. package/dist/cdn/foxy-email-template-form.js +1 -1
  41. package/dist/cdn/foxy-error-entry-card.js +1 -1
  42. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  43. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  44. package/dist/cdn/foxy-form-dialog.js +1 -1
  45. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  46. package/dist/cdn/foxy-gift-card-card.js +1 -1
  47. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  48. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  49. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-form.js +1 -1
  51. package/dist/cdn/foxy-i18n-editor.js +2 -2
  52. package/dist/cdn/foxy-i18n.js +1 -1
  53. package/dist/cdn/foxy-integration-card.js +1 -1
  54. package/dist/cdn/foxy-integration-form.js +1 -1
  55. package/dist/cdn/foxy-item-card.js +1 -1
  56. package/dist/cdn/foxy-item-category-card.js +1 -1
  57. package/dist/cdn/foxy-item-category-form.js +1 -1
  58. package/dist/cdn/foxy-item-form.js +1 -1
  59. package/dist/cdn/foxy-item-option-card.js +1 -1
  60. package/dist/cdn/foxy-item-option-form.js +1 -1
  61. package/dist/cdn/foxy-items-form.js +1 -1
  62. package/dist/cdn/foxy-nucleon-element.js +1 -1
  63. package/dist/cdn/foxy-pagination.js +1 -1
  64. package/dist/cdn/foxy-passkey-card.js +1 -1
  65. package/dist/cdn/foxy-passkey-form.js +1 -1
  66. package/dist/cdn/foxy-payment-card.js +1 -1
  67. package/dist/cdn/foxy-payment-method-card.js +1 -1
  68. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  69. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  70. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  71. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  72. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  73. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  74. package/dist/cdn/foxy-payments-api.js +1 -1
  75. package/dist/cdn/foxy-query-builder.js +1 -1
  76. package/dist/cdn/foxy-report-form.js +4 -4
  77. package/dist/cdn/foxy-reports-table.js +5 -5
  78. package/dist/cdn/foxy-shipment-card.js +2 -2
  79. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  80. package/dist/cdn/foxy-sign-in-form.js +1 -1
  81. package/dist/cdn/foxy-spinner.js +2 -2
  82. package/dist/cdn/foxy-store-card.js +1 -1
  83. package/dist/cdn/foxy-store-form.js +1 -1
  84. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  85. package/dist/cdn/foxy-subscription-card.js +1 -1
  86. package/dist/cdn/foxy-subscription-form.js +2 -2
  87. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  88. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  89. package/dist/cdn/foxy-table.js +1 -1
  90. package/dist/cdn/foxy-tax-card.js +1 -1
  91. package/dist/cdn/foxy-tax-form.js +1 -1
  92. package/dist/cdn/foxy-template-config-form.js +1 -1
  93. package/dist/cdn/foxy-template-form.js +1 -1
  94. package/dist/cdn/foxy-template-set-card.js +1 -1
  95. package/dist/cdn/foxy-template-set-form.js +1 -1
  96. package/dist/cdn/foxy-transaction-card.js +1 -1
  97. package/dist/cdn/foxy-transaction.js +1 -1
  98. package/dist/cdn/foxy-transactions-table.js +7 -7
  99. package/dist/cdn/foxy-user-card.js +1 -1
  100. package/dist/cdn/foxy-user-form.js +1 -1
  101. package/dist/cdn/foxy-users-table.js +1 -1
  102. package/dist/cdn/foxy-webhook-card.js +1 -1
  103. package/dist/cdn/foxy-webhook-form.js +1 -1
  104. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  105. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  106. package/dist/cdn/{shared-479ad951.js → shared-099c1f57.js} +1 -1
  107. package/dist/cdn/{shared-c4240bc6.js → shared-0c0ee663.js} +1 -1
  108. package/dist/cdn/shared-1196b6a7.js +1 -0
  109. package/dist/cdn/shared-13fbea95.js +122 -0
  110. package/dist/cdn/{shared-8474bc4a.js → shared-27d21f4a.js} +1 -1
  111. package/dist/cdn/shared-2edcd981.js +1 -0
  112. package/dist/cdn/{shared-a92ae606.js → shared-31d8e3b8.js} +1 -1
  113. package/dist/cdn/shared-35728235.js +1 -0
  114. package/dist/cdn/shared-3b709ddc.js +29 -0
  115. package/dist/cdn/shared-3bcc07cd.js +1 -0
  116. package/dist/cdn/shared-3c2414d4.js +9 -0
  117. package/dist/cdn/{shared-31651a9c.js → shared-3f04e4cc.js} +1 -1
  118. package/dist/cdn/{shared-ba658670.js → shared-406ce9ad.js} +1 -1
  119. package/dist/cdn/{shared-6f84ac3e.js → shared-4b20fc75.js} +1 -1
  120. package/dist/cdn/shared-4c2e9064.js +15 -0
  121. package/dist/cdn/{shared-1d28220a.js → shared-5103c1b4.js} +1 -1
  122. package/dist/cdn/{shared-4674063d.js → shared-5784c088.js} +27 -27
  123. package/dist/cdn/shared-584174ff.js +1 -0
  124. package/dist/cdn/{shared-1b060170.js → shared-59fc6288.js} +1 -1
  125. package/dist/cdn/{shared-51d28e6d.js → shared-5a889c45.js} +1 -1
  126. package/dist/cdn/{shared-c7f2f1ab.js → shared-5cf7b194.js} +1 -1
  127. package/dist/cdn/{shared-9c626d58.js → shared-5db85492.js} +1 -1
  128. package/dist/cdn/shared-601f27b1.js +1 -0
  129. package/dist/cdn/{shared-36725fe3.js → shared-621b3283.js} +1 -1
  130. package/dist/cdn/shared-630a0ff2.js +1 -0
  131. package/dist/cdn/{shared-984fcdf5.js → shared-6daeb197.js} +3 -3
  132. package/dist/cdn/{shared-4c956a8e.js → shared-7723f756.js} +1 -1
  133. package/dist/cdn/{shared-4dc58b73.js → shared-773e7177.js} +1 -1
  134. package/dist/cdn/{shared-6dc64a17.js → shared-799dc083.js} +1 -1
  135. package/dist/cdn/{shared-e84fa0ea.js → shared-7a455b15.js} +1 -1
  136. package/dist/cdn/{shared-e6828dbf.js → shared-7abbc95c.js} +5 -5
  137. package/dist/cdn/shared-7f33a83a.js +12 -12
  138. package/dist/cdn/{shared-69a21b9d.js → shared-7fab31ac.js} +1 -1
  139. package/dist/cdn/shared-800ee6c0.js +1 -0
  140. package/dist/cdn/shared-8a9c64b2.js +1 -0
  141. package/dist/cdn/{shared-db21f6db.js → shared-8f922de8.js} +2 -2
  142. package/dist/cdn/{shared-e6997950.js → shared-9048eeb2.js} +1 -1
  143. package/dist/cdn/{shared-e10052d0.js → shared-9954ee26.js} +2 -2
  144. package/dist/cdn/{shared-4bbd600d.js → shared-9aa72495.js} +1 -1
  145. package/dist/cdn/shared-9b12aeac.js +1 -0
  146. package/dist/cdn/{shared-6abdfcf2.js → shared-9b486845.js} +1 -1
  147. package/dist/cdn/{shared-b3ac59eb.js → shared-ad80244a.js} +2 -2
  148. package/dist/cdn/{shared-c6c6ba69.js → shared-b446c140.js} +1 -1
  149. package/dist/cdn/shared-b7556b77.js +1 -0
  150. package/dist/cdn/{shared-30bebd39.js → shared-b87d1af0.js} +3 -3
  151. package/dist/cdn/{shared-0a248c0d.js → shared-ba93be6b.js} +1 -1
  152. package/dist/cdn/{shared-9caffb4d.js → shared-baeef007.js} +1 -1
  153. package/dist/cdn/{shared-64f98a0f.js → shared-bee111d6.js} +7 -2
  154. package/dist/cdn/shared-c76ef8d8.js +804 -0
  155. package/dist/cdn/{shared-65318cc1.js → shared-c839e147.js} +1 -1
  156. package/dist/cdn/{shared-4904bca4.js → shared-d1f5de89.js} +1 -1
  157. package/dist/cdn/{shared-a3c73e91.js → shared-d90dbae7.js} +1 -1
  158. package/dist/cdn/{shared-dccf0420.js → shared-ddac7722.js} +2 -2
  159. package/dist/cdn/{shared-e8e92fe3.js → shared-de3dae6c.js} +2 -2
  160. package/dist/cdn/shared-e006e82c.js +1 -0
  161. package/dist/cdn/shared-e2e2ca6a.js +1 -0
  162. package/dist/cdn/shared-e5239bec.js +212 -0
  163. package/dist/cdn/shared-e8a51c60.js +1 -0
  164. package/dist/cdn/shared-e8a85228.js +1 -0
  165. package/dist/cdn/{shared-17d0db7f.js → shared-eb8a0fdf.js} +3 -3
  166. package/dist/cdn/{shared-88e36564.js → shared-ef7f2d07.js} +26 -27
  167. package/dist/cdn/{shared-665d6cc4.js → shared-efaf8d49.js} +1 -1
  168. package/dist/cdn/{shared-ff992ead.js → shared-f0a9f3c2.js} +1 -1
  169. package/dist/cdn/{shared-379b37e6.js → shared-f21e5761.js} +7 -11
  170. package/dist/cdn/shared-f241722a.js +1 -0
  171. package/dist/cdn/{shared-b48a83b0.js → shared-f29acc38.js} +1 -1
  172. package/dist/cdn/{shared-e7c3b7b6.js → shared-f29d410a.js} +1 -1
  173. package/dist/cdn/{shared-bdb51db9.js → shared-f5bbb1e0.js} +1 -1
  174. package/dist/cdn/{shared-c97e0d6e.js → shared-fcfbfbdb.js} +1 -1
  175. package/dist/cdn/{shared-bafcab47.js → shared-fd40a40c.js} +3 -3
  176. package/dist/cdn/{shared-4b67d699.js → shared-fd96bcd1.js} +1 -1
  177. package/dist/cdn/{shared-dfe2602a.js → shared-ff7fd5fa.js} +1 -1
  178. package/dist/cdn/{shared-d14c2060.js → shared-fff03a45.js} +1 -1
  179. package/dist/cdn/translations/address-form/en.json +577 -0
  180. package/dist/cdn/translations/customer/en.json +653 -15
  181. package/dist/cdn/translations/customer-form/en.json +84 -15
  182. package/dist/cdn/translations/customer-portal/en.json +694 -32
  183. package/dist/cdn/translations/customer-portal-settings/en.json +9 -0
  184. package/dist/cdn/translations/transaction/en.json +79 -15
  185. package/dist/elements/internal/InternalForm/InternalForm.d.ts +10 -0
  186. package/dist/elements/internal/InternalForm/InternalForm.js +48 -1
  187. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  188. package/dist/elements/internal/InternalForm/index.d.ts +1 -0
  189. package/dist/elements/internal/InternalForm/index.js +1 -0
  190. package/dist/elements/internal/InternalForm/index.js.map +1 -1
  191. package/dist/elements/internal/InternalForm/types.d.ts +4 -0
  192. package/dist/elements/internal/InternalForm/types.js +2 -0
  193. package/dist/elements/internal/InternalForm/types.js.map +1 -0
  194. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.d.ts +5 -1
  195. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js +36 -1
  196. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js.map +1 -1
  197. package/dist/elements/internal/InternalPasswordControl/generateRandomPassword.d.ts +1 -0
  198. package/dist/elements/internal/InternalPasswordControl/generateRandomPassword.js +11 -0
  199. package/dist/elements/internal/InternalPasswordControl/generateRandomPassword.js.map +1 -0
  200. package/dist/elements/public/AddressForm/AddressForm.d.ts +2 -1
  201. package/dist/elements/public/AddressForm/AddressForm.js +53 -17
  202. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  203. package/dist/elements/public/AddressForm/countries.d.ts +1 -1
  204. package/dist/elements/public/AddressForm/countries.js +554 -251
  205. package/dist/elements/public/AddressForm/countries.js.map +1 -1
  206. package/dist/elements/public/Customer/Customer.d.ts +5 -2
  207. package/dist/elements/public/Customer/Customer.js +10 -0
  208. package/dist/elements/public/Customer/Customer.js.map +1 -1
  209. package/dist/elements/public/Customer/types.d.ts +1 -0
  210. package/dist/elements/public/Customer/types.js.map +1 -1
  211. package/dist/elements/public/CustomerApi/CustomerApi.d.ts +33 -2
  212. package/dist/elements/public/CustomerApi/CustomerApi.js +62 -11
  213. package/dist/elements/public/CustomerApi/CustomerApi.js.map +1 -1
  214. package/dist/elements/public/CustomerForm/CustomerForm.d.ts +47 -15
  215. package/dist/elements/public/CustomerForm/CustomerForm.js +259 -155
  216. package/dist/elements/public/CustomerForm/CustomerForm.js.map +1 -1
  217. package/dist/elements/public/CustomerForm/index.d.ts +6 -6
  218. package/dist/elements/public/CustomerForm/index.js +6 -6
  219. package/dist/elements/public/CustomerForm/index.js.map +1 -1
  220. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/InternalCustomerFormLegalNoticeControl.d.ts +5 -0
  221. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/InternalCustomerFormLegalNoticeControl.js +23 -0
  222. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/InternalCustomerFormLegalNoticeControl.js.map +1 -0
  223. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/index.d.ts +4 -0
  224. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/index.js +6 -0
  225. package/dist/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/index.js.map +1 -0
  226. package/dist/elements/public/CustomerForm/types.d.ts +27 -7
  227. package/dist/elements/public/CustomerForm/types.js.map +1 -1
  228. package/dist/elements/public/CustomerPortal/CustomerPortal.js +12 -15
  229. package/dist/elements/public/CustomerPortal/CustomerPortal.js.map +1 -1
  230. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.d.ts +8 -11
  231. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +9 -33
  232. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
  233. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.d.ts +14 -10
  234. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +152 -16
  235. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  236. package/dist/elements/public/CustomerPortal/index.d.ts +2 -0
  237. package/dist/elements/public/CustomerPortal/index.js +2 -2
  238. package/dist/elements/public/CustomerPortal/index.js.map +1 -1
  239. package/dist/elements/public/CustomerPortalSettings/CustomerPortalSettings.js +14 -0
  240. package/dist/elements/public/CustomerPortalSettings/CustomerPortalSettings.js.map +1 -1
  241. package/dist/elements/public/CustomerPortalSettings/machine.js +10 -0
  242. package/dist/elements/public/CustomerPortalSettings/machine.js.map +1 -1
  243. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUp.d.ts +14 -0
  244. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUp.js +132 -0
  245. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUp.js.map +1 -0
  246. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUpChangeEvent.d.ts +4 -0
  247. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUpChangeEvent.js +6 -0
  248. package/dist/elements/public/CustomerPortalSettings/private/SignUp/SignUpChangeEvent.js.map +1 -0
  249. package/dist/elements/public/CustomerPortalSettings/types.d.ts +4 -0
  250. package/dist/elements/public/CustomerPortalSettings/types.js.map +1 -1
  251. package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js +1 -1
  252. package/dist/elements/public/FilterAttributeCard/FilterAttributeCard.js.map +1 -1
  253. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  254. package/dist/elements/public/FormDialog/FormDialog.js +6 -0
  255. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  256. package/dist/elements/public/FormDialog/types.d.ts +3 -1
  257. package/dist/elements/public/FormDialog/types.js.map +1 -1
  258. package/dist/elements/public/NucleonElement/NucleonElement.d.ts +1 -1
  259. package/dist/elements/public/NucleonElement/NucleonElement.js +1 -1
  260. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  261. package/dist/elements/public/NucleonElement/types.d.ts +1 -1
  262. package/dist/elements/public/NucleonElement/types.js.map +1 -1
  263. package/dist/mixins/themeable.js +16 -0
  264. package/dist/mixins/themeable.js.map +1 -1
  265. package/dist/types/hapi.d.ts +14 -0
  266. package/dist/types/hapi.js.map +1 -1
  267. package/dist/utils/parse-duration.js +2 -2
  268. package/dist/utils/parse-duration.js.map +1 -1
  269. package/package.json +13 -11
  270. package/dist/cdn/shared-09d4fbb8.js +0 -29
  271. package/dist/cdn/shared-1d08a5ad.js +0 -1
  272. package/dist/cdn/shared-1eac92fa.js +0 -1
  273. package/dist/cdn/shared-25f64060.js +0 -1
  274. package/dist/cdn/shared-307262a1.js +0 -15
  275. package/dist/cdn/shared-332f2997.js +0 -1
  276. package/dist/cdn/shared-39f3b48d.js +0 -1
  277. package/dist/cdn/shared-432c5183.js +0 -9
  278. package/dist/cdn/shared-4dee79d4.js +0 -1
  279. package/dist/cdn/shared-53061389.js +0 -1
  280. package/dist/cdn/shared-59042137.js +0 -201
  281. package/dist/cdn/shared-65ba8b39.js +0 -1
  282. package/dist/cdn/shared-77a4d8e8.js +0 -1
  283. package/dist/cdn/shared-7f5618ba.js +0 -1
  284. package/dist/cdn/shared-92f27a38.js +0 -1
  285. package/dist/cdn/shared-b0f534ef.js +0 -1
  286. package/dist/cdn/shared-be24dd36.js +0 -804
  287. package/dist/cdn/shared-bf62a65b.js +0 -1
  288. package/dist/cdn/shared-c2d3b32b.js +0 -1
  289. package/dist/cdn/shared-cf269a17.js +0 -1
  290. package/dist/cdn/shared-fe54babe.js +0 -1
  291. package/dist/cdn/shared-fef9ecc1.js +0 -122
  292. package/dist/elements/public/AddressForm/regions.d.ts +0 -1
  293. package/dist/elements/public/AddressForm/regions.js +0 -67
  294. package/dist/elements/public/AddressForm/regions.js.map +0 -1
  295. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.d.ts +0 -29
  296. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js +0 -169
  297. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js.map +0 -1
  298. /package/dist/cdn/{shared-64657919.js → shared-343d1fd7.js} +0 -0
  299. /package/dist/cdn/{shared-d6276c83.js → shared-3ab0306f.js} +0 -0
  300. /package/dist/cdn/{shared-e6f3e9f0.js → shared-bb05cfed.js} +0 -0
  301. /package/dist/cdn/{shared-99065f2a.js → shared-d7be11de.js} +0 -0
  302. /package/dist/cdn/{shared-0479553e.js → shared-f9180815.js} +0 -0
@@ -0,0 +1,6 @@
1
+ import "../../../../internal/InternalControl/index.js";
2
+ import "../../../I18n/index.js";
3
+ import { InternalCustomerFormLegalNoticeControl as Control } from "./InternalCustomerFormLegalNoticeControl.js";
4
+ customElements.define('foxy-internal-customer-form-legal-notice-control', Control);
5
+ export { Control as InternalCustomerFormLegalNoticeControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/CustomerForm/internal/InternalCustomerFormLegalNoticeControl/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,gCAA6B;AAE7B,OAAO,EAAE,sCAAsC,IAAI,OAAO,EAAE,oDAAiD;AAE7G,cAAc,CAAC,MAAM,CAAC,kDAAkD,EAAE,OAAO,CAAC,CAAC;AAEnF,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,CAAC","sourcesContent":["import '../../../../internal/InternalControl/index';\nimport '../../../I18n/index';\n\nimport { InternalCustomerFormLegalNoticeControl as Control } from './InternalCustomerFormLegalNoticeControl';\n\ncustomElements.define('foxy-internal-customer-form-legal-notice-control', Control);\n\nexport { Control as InternalCustomerFormLegalNoticeControl };\n"]}
@@ -1,11 +1,23 @@
1
- import * as FoxySDK from '@foxy.io/sdk';
2
- import { Renderer } from '../../../mixins/configurable';
3
- import { CustomerForm } from './CustomerForm';
4
- export declare type Rel = FoxySDK.Customer.Graph;
5
- export declare type Data = FoxySDK.Core.Resource<Rel, undefined>;
6
- export declare type TextFieldParams = {
7
- field: keyof Data;
1
+ import type { CustomerForm } from './CustomerForm';
2
+ import type { Renderer } from '../../../mixins/configurable';
3
+ import type { Resource } from '@foxy.io/sdk/core';
4
+ import type { Rels as CustomerRels } from '@foxy.io/sdk/customer';
5
+ import type { Rels as BackendRels } from '@foxy.io/sdk/backend';
6
+ export declare type Settings = Resource<CustomerRels.CustomerPortalSettings>;
7
+ export declare type Rel = BackendRels.Customer & {
8
+ props: {
9
+ /** When updating the password using Customer API, this value is required to complete the request. */
10
+ password_old?: string;
11
+ /** Client verification result. Required for customer registration via Customer API. */
12
+ verification?: {
13
+ /** Verification result, generated by hCaptcha. */
14
+ token: string;
15
+ /** Verification service type. Currently only hCaptcha is supported. */
16
+ type: 'hcaptcha';
17
+ };
18
+ };
8
19
  };
20
+ export declare type Data = Resource<Rel, undefined>;
9
21
  export declare type Templates = {
10
22
  'first-name:before'?: Renderer<CustomerForm>;
11
23
  'first-name:after'?: Renderer<CustomerForm>;
@@ -15,6 +27,14 @@ export declare type Templates = {
15
27
  'email:after'?: Renderer<CustomerForm>;
16
28
  'tax-id:before'?: Renderer<CustomerForm>;
17
29
  'tax-id:after'?: Renderer<CustomerForm>;
30
+ 'is-anonymous:before'?: Renderer<CustomerForm>;
31
+ 'is-anonymous:after'?: Renderer<CustomerForm>;
32
+ 'password:before'?: Renderer<CustomerForm>;
33
+ 'password:after'?: Renderer<CustomerForm>;
34
+ 'password-old:before'?: Renderer<CustomerForm>;
35
+ 'password-old:after'?: Renderer<CustomerForm>;
36
+ 'forgot-password:before'?: Renderer<CustomerForm>;
37
+ 'forgot-password:after'?: Renderer<CustomerForm>;
18
38
  'timestamps:before'?: Renderer<CustomerForm>;
19
39
  'timestamps:after'?: Renderer<CustomerForm>;
20
40
  'delete:before'?: Renderer<CustomerForm>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import * as FoxySDK from '@foxy.io/sdk';\nimport { Renderer } from '../../../mixins/configurable';\nimport { CustomerForm } from './CustomerForm';\n\nexport type Rel = FoxySDK.Customer.Graph;\nexport type Data = FoxySDK.Core.Resource<Rel, undefined>;\nexport type TextFieldParams = { field: keyof Data };\nexport type Templates = {\n 'first-name:before'?: Renderer<CustomerForm>;\n 'first-name:after'?: Renderer<CustomerForm>;\n 'last-name:before'?: Renderer<CustomerForm>;\n 'last-name:after'?: Renderer<CustomerForm>;\n 'email:before'?: Renderer<CustomerForm>;\n 'email:after'?: Renderer<CustomerForm>;\n 'tax-id:before'?: Renderer<CustomerForm>;\n 'tax-id:after'?: Renderer<CustomerForm>;\n 'timestamps:before'?: Renderer<CustomerForm>;\n 'timestamps:after'?: Renderer<CustomerForm>;\n 'delete:before'?: Renderer<CustomerForm>;\n 'delete:after'?: Renderer<CustomerForm>;\n 'create:before'?: Renderer<CustomerForm>;\n 'create:after'?: Renderer<CustomerForm>;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CustomerForm } from './CustomerForm';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels as CustomerRels } from '@foxy.io/sdk/customer';\nimport type { Rels as BackendRels } from '@foxy.io/sdk/backend';\n\nexport type Settings = Resource<CustomerRels.CustomerPortalSettings>;\n\nexport type Rel = BackendRels.Customer & {\n props: {\n /** When updating the password using Customer API, this value is required to complete the request. */\n password_old?: string;\n /** Client verification result. Required for customer registration via Customer API. */\n verification?: {\n /** Verification result, generated by hCaptcha. */\n token: string;\n /** Verification service type. Currently only hCaptcha is supported. */\n type: 'hcaptcha';\n };\n };\n};\n\nexport type Data = Resource<Rel, undefined>;\n\nexport type Templates = {\n 'first-name:before'?: Renderer<CustomerForm>;\n 'first-name:after'?: Renderer<CustomerForm>;\n\n 'last-name:before'?: Renderer<CustomerForm>;\n 'last-name:after'?: Renderer<CustomerForm>;\n\n 'email:before'?: Renderer<CustomerForm>;\n 'email:after'?: Renderer<CustomerForm>;\n\n 'tax-id:before'?: Renderer<CustomerForm>;\n 'tax-id:after'?: Renderer<CustomerForm>;\n\n 'is-anonymous:before'?: Renderer<CustomerForm>;\n 'is-anonymous:after'?: Renderer<CustomerForm>;\n\n 'password:before'?: Renderer<CustomerForm>;\n 'password:after'?: Renderer<CustomerForm>;\n\n 'password-old:before'?: Renderer<CustomerForm>;\n 'password-old:after'?: Renderer<CustomerForm>;\n\n 'forgot-password:before'?: Renderer<CustomerForm>;\n 'forgot-password:after'?: Renderer<CustomerForm>;\n\n 'timestamps:before'?: Renderer<CustomerForm>;\n 'timestamps:after'?: Renderer<CustomerForm>;\n\n 'delete:before'?: Renderer<CustomerForm>;\n 'delete:after'?: Renderer<CustomerForm>;\n\n 'create:before'?: Renderer<CustomerForm>;\n 'create:after'?: Renderer<CustomerForm>;\n};\n"]}
@@ -4,6 +4,7 @@ import { CustomerApi } from "../CustomerApi/CustomerApi.js";
4
4
  import { ThemeableMixin } from "../../../mixins/themeable.js";
5
5
  import { TranslatableMixin } from "../../../mixins/translatable.js";
6
6
  import { TransactionsTable } from "../TransactionsTable/TransactionsTable.js";
7
+ import { ifDefined } from 'lit-html/directives/if-defined';
7
8
  export class CustomerPortal extends TranslatableMixin(ThemeableMixin(CustomerApi), 'customer-portal') {
8
9
  constructor() {
9
10
  super(...arguments);
@@ -27,33 +28,29 @@ export class CustomerPortal extends TranslatableMixin(ThemeableMixin(CustomerApi
27
28
  };
28
29
  }
29
30
  render() {
31
+ let href;
32
+ try {
33
+ href = new URL('./customer_portal_settings', this.base).toString();
34
+ }
35
+ catch (_a) {
36
+ href = undefined;
37
+ }
30
38
  return this.api.storage.getItem(API.SESSION)
31
39
  ? html `
32
40
  <foxy-internal-customer-portal-logged-in-view
33
- disabledcontrols=${this.disabledSelector.toString()}
34
- readonlycontrols=${this.readonlySelector.toString()}
35
- hiddencontrols=${this.hiddenSelector.toString()}
36
41
  customer=${this.base}
37
- group=${this.group}
38
42
  class="h-full"
39
- lang=${this.lang}
40
- href=${new URL('./customer_portal_settings', this.base).toString()}
41
- ns=${this.ns}
43
+ infer=""
44
+ href=${ifDefined(href)}
42
45
  .transactionsTableColumns=${this.transactionsTableColumns}
43
- .templates=${this.templates}
44
46
  >
45
47
  </foxy-internal-customer-portal-logged-in-view>
46
48
  `
47
49
  : html `
48
50
  <foxy-internal-customer-portal-logged-out-view
49
- disabledcontrols=${this.disabledSelector.toString()}
50
- readonlycontrols=${this.readonlySelector.toString()}
51
- hiddencontrols=${this.hiddenSelector.toString()}
52
- group=${this.group}
53
51
  class="h-full"
54
- lang=${this.lang}
55
- ns=${this.ns}
56
- .templates=${this.templates}
52
+ infer=""
53
+ href=${ifDefined(href)}
57
54
  >
58
55
  </foxy-internal-customer-portal-logged-out-view>
59
56
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerPortal.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/CustomerPortal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,sCAAmC;AACzD,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kDAA+C;AAE3E,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CACnD,cAAc,CAAC,WAAW,CAAC,EAC3B,iBAAiB,CAClB;IAHD;;QAYE,4FAA4F;QAC5F,6BAAwB,GAAiC;YACvD,iBAAiB,CAAC,WAAW;YAC7B,iBAAiB,CAAC,aAAa;YAC/B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,QAAQ;YAC1B,iBAAiB,CAAC,UAAU;YAC5B,iBAAiB,CAAC,aAAa;SAChC,CAAC;QAEF,2FAA2F;QAC3F,UAAK,GAAG,EAAE,CAAC;IAkCb,CAAC;IArDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAeD,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAA;;+BAEmB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;+BAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;6BAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;uBACpC,IAAI,CAAC,IAAI;oBACZ,IAAI,CAAC,KAAK;;mBAEX,IAAI,CAAC,IAAI;mBACT,IAAI,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;iBAC7D,IAAI,CAAC,EAAE;wCACgB,IAAI,CAAC,wBAAwB;yBAC5C,IAAI,CAAC,SAAS;;;SAG9B;YACH,CAAC,CAAC,IAAI,CAAA;;+BAEmB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;+BAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;6BAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,KAAK;;mBAEX,IAAI,CAAC,IAAI;iBACX,IAAI,CAAC,EAAE;yBACC,IAAI,CAAC,SAAS;;;SAG9B,CAAC;IACR,CAAC;CACF","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '@foxy.io/sdk/customer';\nimport { CustomerApi } from '../CustomerApi/CustomerApi';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TransactionsTable } from '../TransactionsTable/TransactionsTable';\n\nexport class CustomerPortal extends TranslatableMixin(\n ThemeableMixin(CustomerApi),\n 'customer-portal'\n) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n transactionsTableColumns: { attribute: false },\n group: { type: String },\n };\n }\n\n /** Same as `.columns` property on `foxy-transactions-table`. Sets columns of that table. */\n transactionsTableColumns: TransactionsTable['columns'] = [\n TransactionsTable.priceColumn,\n TransactionsTable.summaryColumn,\n TransactionsTable.statusColumn,\n TransactionsTable.idColumn,\n TransactionsTable.dateColumn,\n TransactionsTable.receiptColumn,\n ];\n\n /** Rumour group. Elements in different groups will not share updates. Empty by default. */\n group = '';\n\n render(): TemplateResult {\n return this.api.storage.getItem(API.SESSION)\n ? html`\n <foxy-internal-customer-portal-logged-in-view\n disabledcontrols=${this.disabledSelector.toString()}\n readonlycontrols=${this.readonlySelector.toString()}\n hiddencontrols=${this.hiddenSelector.toString()}\n customer=${this.base}\n group=${this.group}\n class=\"h-full\"\n lang=${this.lang}\n href=${new URL('./customer_portal_settings', this.base).toString()}\n ns=${this.ns}\n .transactionsTableColumns=${this.transactionsTableColumns}\n .templates=${this.templates}\n >\n </foxy-internal-customer-portal-logged-in-view>\n `\n : html`\n <foxy-internal-customer-portal-logged-out-view\n disabledcontrols=${this.disabledSelector.toString()}\n readonlycontrols=${this.readonlySelector.toString()}\n hiddencontrols=${this.hiddenSelector.toString()}\n group=${this.group}\n class=\"h-full\"\n lang=${this.lang}\n ns=${this.ns}\n .templates=${this.templates}\n >\n </foxy-internal-customer-portal-logged-out-view>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"CustomerPortal.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/CustomerPortal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,sCAAmC;AACzD,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kDAA+C;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CACnD,cAAc,CAAC,WAAW,CAAC,EAC3B,iBAAiB,CAClB;IAHD;;QAYE,4FAA4F;QAC5F,6BAAwB,GAAiC;YACvD,iBAAiB,CAAC,WAAW;YAC7B,iBAAiB,CAAC,aAAa;YAC/B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,QAAQ;YAC1B,iBAAiB,CAAC,UAAU;YAC5B,iBAAiB,CAAC,aAAa;SAChC,CAAC;QAEF,2FAA2F;QAC3F,UAAK,GAAG,EAAE,CAAC;IA+Bb,CAAC;IAlDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAeD,MAAM;QACJ,IAAI,IAAwB,CAAC;QAE7B,IAAI;YACF,IAAI,GAAG,IAAI,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpE;QAAC,WAAM;YACN,IAAI,GAAG,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAA;;uBAEW,IAAI,CAAC,IAAI;;;mBAGb,SAAS,CAAC,IAAI,CAAC;wCACM,IAAI,CAAC,wBAAwB;;;SAG5D;YACH,CAAC,CAAC,IAAI,CAAA;;;;mBAIO,SAAS,CAAC,IAAI,CAAC;;;SAGzB,CAAC;IACR,CAAC;CACF","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '@foxy.io/sdk/customer';\nimport { CustomerApi } from '../CustomerApi/CustomerApi';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport class CustomerPortal extends TranslatableMixin(\n ThemeableMixin(CustomerApi),\n 'customer-portal'\n) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n transactionsTableColumns: { attribute: false },\n group: { type: String },\n };\n }\n\n /** Same as `.columns` property on `foxy-transactions-table`. Sets columns of that table. */\n transactionsTableColumns: TransactionsTable['columns'] = [\n TransactionsTable.priceColumn,\n TransactionsTable.summaryColumn,\n TransactionsTable.statusColumn,\n TransactionsTable.idColumn,\n TransactionsTable.dateColumn,\n TransactionsTable.receiptColumn,\n ];\n\n /** Rumour group. Elements in different groups will not share updates. Empty by default. */\n group = '';\n\n render(): TemplateResult {\n let href: string | undefined;\n\n try {\n href = new URL('./customer_portal_settings', this.base).toString();\n } catch {\n href = undefined;\n }\n\n return this.api.storage.getItem(API.SESSION)\n ? html`\n <foxy-internal-customer-portal-logged-in-view\n customer=${this.base}\n class=\"h-full\"\n infer=\"\"\n href=${ifDefined(href)}\n .transactionsTableColumns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-logged-in-view>\n `\n : html`\n <foxy-internal-customer-portal-logged-out-view\n class=\"h-full\"\n infer=\"\"\n href=${ifDefined(href)}\n >\n </foxy-internal-customer-portal-logged-out-view>\n `;\n }\n}\n"]}
@@ -1,15 +1,12 @@
1
1
  /// <reference types="node" />
2
- import { TemplateResult } from 'lit-html';
3
- import { NucleonElement } from '../NucleonElement/NucleonElement';
4
- import { PropertyDeclarations } from 'lit-element';
5
- import { Rels } from '@foxy.io/sdk/customer';
6
- import { Resource } from '@foxy.io/sdk/core';
7
- import { Templates } from './types';
8
- import { TransactionsTable } from '../TransactionsTable/TransactionsTable';
9
- declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
2
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
3
+ import type { TransactionsTable } from '../TransactionsTable/TransactionsTable';
4
+ import type { Templates } from './types';
5
+ import type { Resource } from '@foxy.io/sdk/core';
6
+ import type { Rels } from '@foxy.io/sdk/customer';
7
+ import { InternalForm } from '../../internal/InternalForm/InternalForm';
8
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
10
9
  defaultNS: string;
11
- } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
12
- styles: import("lit-element").CSSResultArray;
13
10
  };
14
11
  declare type Data = Resource<Rels.CustomerPortalSettings>;
15
12
  export declare class InternalCustomerPortalLoggedInView extends Base<Data> {
@@ -22,7 +19,7 @@ export declare class InternalCustomerPortalLoggedInView extends Base<Data> {
22
19
  private readonly __renderHeaderActionsSignOut;
23
20
  private readonly __renderSubscriptions;
24
21
  private readonly __renderTransactions;
25
- render(): TemplateResult;
22
+ renderBody(): TemplateResult;
26
23
  disconnectedCallback(): void;
27
24
  private get __customerElement();
28
25
  }
@@ -1,11 +1,9 @@
1
- import { ConfigurableMixin } from "../../../mixins/configurable.js";
2
- import { html } from 'lit-html';
3
- import { API } from "../NucleonElement/API.js";
4
- import { NucleonElement } from "../NucleonElement/NucleonElement.js";
5
1
  import { BooleanSelector } from '@foxy.io/sdk/core';
6
- import { ThemeableMixin } from "../../../mixins/themeable.js";
7
2
  import { TranslatableMixin } from "../../../mixins/translatable.js";
8
- const Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement)));
3
+ import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
4
+ import { html } from 'lit-html';
5
+ import { API } from "../NucleonElement/API.js";
6
+ const Base = TranslatableMixin(InternalForm);
9
7
  export class InternalCustomerPortalLoggedInView extends Base {
10
8
  constructor() {
11
9
  super(...arguments);
@@ -128,7 +126,7 @@ export class InternalCustomerPortalLoggedInView extends Base {
128
126
  loggingOutStateResetTimeout: { attribute: false },
129
127
  };
130
128
  }
131
- render() {
129
+ renderBody() {
132
130
  var _a, _b;
133
131
  const hiddenSelector = this.hiddenSelector.zoom('customer');
134
132
  const customerHiddenControls = new BooleanSelector([
@@ -136,12 +134,14 @@ export class InternalCustomerPortalLoggedInView extends Base {
136
134
  'transactions',
137
135
  'subscriptions',
138
136
  'addresses:actions:create',
137
+ 'header:actions:edit:form:is-anonymous',
138
+ 'header:actions:edit:form:forgot-password',
139
+ 'header:actions:edit:form:create',
139
140
  'header:actions:edit:form:delete',
140
141
  hiddenSelector.toString(),
141
142
  ].join(' ')).toString();
142
143
  const templates = this.getNestedTemplates('customer');
143
144
  const originalHeaderActionsAfterTemplate = templates['header:actions:after'];
144
- const originalTimestampsAfterTemplate = templates['header:actions:edit:form:timestamps:after'];
145
145
  const originalDefaultTemplate = templates['default'];
146
146
  templates['header:actions:after'] = (html, host) => {
147
147
  const isSignOutHidden = hiddenSelector.matches('header:actions:sign-out', true);
@@ -170,31 +170,6 @@ export class InternalCustomerPortalLoggedInView extends Base {
170
170
  ${hiddenSelector.matches('subscriptions', true) ? '' : renderSubscriptions(html, host)}
171
171
  ${hiddenSelector.matches('transactions', true) ? '' : renderTransactions(html, host)}
172
172
  </div>
173
- `;
174
- };
175
- templates['header:actions:edit:form:timestamps:after'] = (html, host) => {
176
- var _a, _b;
177
- const scope = 'change-password';
178
- return html `
179
- ${originalTimestampsAfterTemplate === null || originalTimestampsAfterTemplate === void 0 ? void 0 : originalTimestampsAfterTemplate(html, host)}
180
- ${host.hiddenSelector.matches(scope, true)
181
- ? ''
182
- : html `
183
- ${host.renderTemplateOrSlot(`${scope}:before`)}
184
-
185
- <foxy-internal-customer-portal-change-password
186
- customer=${host.href}
187
- session="foxy://customer-api/session"
188
- style="margin-top: var(--lumo-space-l)"
189
- email=${(_b = (_a = host.data) === null || _a === void 0 ? void 0 : _a.email) !== null && _b !== void 0 ? _b : ''}
190
- lang=${host.lang}
191
- ns=${host.ns}
192
- ?disabled=${host.in('busy') || host.disabledSelector.matches(scope, true)}
193
- >
194
- </foxy-internal-customer-portal-change-password>
195
-
196
- ${host.renderTemplateOrSlot(`${scope}:after`)}
197
- `}
198
173
  `;
199
174
  };
200
175
  return html `
@@ -209,6 +184,7 @@ export class InternalCustomerPortalLoggedInView extends Base {
209
184
  ns="${this.ns} ${(_b = (_a = customElements.get('foxy-customer')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
210
185
  id="customer"
211
186
  .templates=${templates}
187
+ .settings=${this.data}
212
188
  @update=${() => this.requestUpdate()}
213
189
  >
214
190
  </foxy-customer>
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalLoggedInView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConfigurableMixin, Renderer } from '../../../mixins/configurable';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { API } from '../NucleonElement/API';\nimport { Customer } from '../Customer/Customer';\nimport { Templates as CustomerTemplates } from '../Customer/types';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/customer';\nimport { BooleanSelector, Resource } from '@foxy.io/sdk/core';\nimport { Templates } from './types';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TransactionsTable } from '../TransactionsTable/TransactionsTable';\n\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement)));\ntype Data = Resource<Rels.CustomerPortalSettings>;\n\nexport class InternalCustomerPortalLoggedInView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customer: { type: String },\n loggingOutState: { attribute: false },\n transactionsTableColumns: { attribute: false },\n loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\n\n transactionsTableColumns: TransactionsTable['columns'] = [];\n\n loggingOutStateResetTimeout: NodeJS.Timeout | null = null;\n\n private readonly __renderHeaderActionsSignOut = () => {\n const scope = 'customer:header:actions:sign-out';\n const state = this.loggingOutState;\n\n const isDisabled =\n this.disabledSelector.matches(scope) ||\n !this.__customerElement?.in({ idle: 'snapshot' }) ||\n state !== 'idle';\n\n const handleClick = async () => {\n try {\n this.loggingOutState = 'busy';\n await new API(this).fetch('foxy://customer-api/session', { method: 'DELETE' });\n this.loggingOutState = 'idle';\n } catch {\n this.loggingOutState = 'fail';\n this.loggingOutStateResetTimeout = setTimeout(() => {\n this.loggingOutState = 'idle';\n this.loggingOutStateResetTimeout = null;\n }, 1000);\n }\n };\n\n const style = {\n 'border-radius': '100%',\n 'padding': 'var(--lumo-space-xs)',\n 'display': 'flex',\n 'margin': '0',\n 'cursor': isDisabled ? 'default' : 'pointer',\n };\n\n return html`\n <div style=\"display: flex; margin-left: var(--lumo-space-m)\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <vaadin-button\n data-testid=\"sign-out\"\n aria-label=${this.t('sign_out').toString()}\n style=${Object.entries(style).reduce((p, [k, v]) => `${p}${k}:${v};`, '')}\n theme=\"icon\"\n ?disabled=${isDisabled}\n @click=${handleClick}\n >\n ${state === 'idle'\n ? html`<iron-icon icon=\"icons:exit-to-app\"></iron-icon>`\n : html`\n <foxy-spinner\n layout=\"no-label\"\n state=${state === 'fail' ? 'error' : 'busy'}\n style=\"margin: auto\"\n lang=${this.lang}\n ns=${[\n this.ns,\n customElements.get('foxy-customer')?.defaultNS ?? '',\n customElements.get('foxy-spinner')?.defaultNS ?? '',\n ].join(' ')}\n >\n </foxy-spinner>\n `}\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSubscriptions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:subscriptions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-subscriptions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .settings=${this.data}\n .customer=${host.data}\n >\n </foxy-internal-customer-portal-subscriptions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n private readonly __renderTransactions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:transactions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-transactions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .customer=${host.data}\n .columns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-transactions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector.zoom('customer');\n const customerHiddenControls = new BooleanSelector(\n [\n 'attributes',\n 'transactions',\n 'subscriptions',\n 'addresses:actions:create',\n 'header:actions:edit:form:delete',\n hiddenSelector.toString(),\n ].join(' ')\n ).toString();\n\n const templates: CustomerTemplates = this.getNestedTemplates('customer');\n const originalHeaderActionsAfterTemplate = templates['header:actions:after'];\n const originalTimestampsAfterTemplate = templates['header:actions:edit:form:timestamps:after'];\n const originalDefaultTemplate = templates['default'];\n\n templates['header:actions:after'] = (html, host) => {\n const isSignOutHidden = hiddenSelector.matches('header:actions:sign-out', true);\n return html`\n <div style=\"display:flex\">\n ${isSignOutHidden ? '' : this.__renderHeaderActionsSignOut()}\n ${originalHeaderActionsAfterTemplate?.(html, host)}\n </div>\n `;\n };\n\n templates['default'] = (html, host) => {\n const renderSubscriptions = this.__renderSubscriptions;\n const renderTransactions = this.__renderTransactions;\n\n return html`\n <style>\n .space-y-m > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(var(--lumo-space-m, 1rem) * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(var(--lumo-space-m, 1rem) * var(--tw-space-y-reverse));\n }\n </style>\n\n ${hiddenSelector.matches('default', true) ? '' : originalDefaultTemplate?.(html, host)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('subscriptions', true) ? '' : renderSubscriptions(html, host)}\n ${hiddenSelector.matches('transactions', true) ? '' : renderTransactions(html, host)}\n </div>\n `;\n };\n\n templates['header:actions:edit:form:timestamps:after'] = (html, host) => {\n const scope = 'change-password';\n\n return html`\n ${originalTimestampsAfterTemplate?.(html, host)}\n ${host.hiddenSelector.matches(scope, true)\n ? ''\n : html`\n ${host.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-change-password\n customer=${host.href}\n session=\"foxy://customer-api/session\"\n style=\"margin-top: var(--lumo-space-l)\"\n email=${host.data?.email ?? ''}\n lang=${host.lang}\n ns=${host.ns}\n ?disabled=${host.in('busy') || host.disabledSelector.matches(scope, true)}\n >\n </foxy-internal-customer-portal-change-password>\n\n ${host.renderTemplateOrSlot(`${scope}:after`)}\n `}\n `;\n };\n\n return html`\n <foxy-customer\n readonlycontrols=${this.readonlySelector.zoom('customer').toString()}\n disabledcontrols=${this.disabledSelector.zoom('customer').toString()}\n hiddencontrols=${customerHiddenControls}\n data-testid=\"customer\"\n group=${this.group}\n href=${this.customer}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-customer')?.defaultNS ?? ''}\"\n id=\"customer\"\n .templates=${templates}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.loggingOutStateResetTimeout) clearTimeout(this.loggingOutStateResetTimeout);\n }\n\n private get __customerElement() {\n return this.renderRoot.querySelector<Customer>('#customer');\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalLoggedInView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport type { Templates as CustomerTemplates } from '../Customer/types';\nimport type { Templates } from './types';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Customer } from '../Customer/Customer';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/customer';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\nimport { API } from '../NucleonElement/API';\n\nconst Base = TranslatableMixin(InternalForm);\ntype Data = Resource<Rels.CustomerPortalSettings>;\n\nexport class InternalCustomerPortalLoggedInView extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customer: { type: String },\n loggingOutState: { attribute: false },\n transactionsTableColumns: { attribute: false },\n loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\n\n transactionsTableColumns: TransactionsTable['columns'] = [];\n\n loggingOutStateResetTimeout: NodeJS.Timeout | null = null;\n\n private readonly __renderHeaderActionsSignOut = () => {\n const scope = 'customer:header:actions:sign-out';\n const state = this.loggingOutState;\n\n const isDisabled =\n this.disabledSelector.matches(scope) ||\n !this.__customerElement?.in({ idle: 'snapshot' }) ||\n state !== 'idle';\n\n const handleClick = async () => {\n try {\n this.loggingOutState = 'busy';\n await new API(this).fetch('foxy://customer-api/session', { method: 'DELETE' });\n this.loggingOutState = 'idle';\n } catch {\n this.loggingOutState = 'fail';\n this.loggingOutStateResetTimeout = setTimeout(() => {\n this.loggingOutState = 'idle';\n this.loggingOutStateResetTimeout = null;\n }, 1000);\n }\n };\n\n const style = {\n 'border-radius': '100%',\n 'padding': 'var(--lumo-space-xs)',\n 'display': 'flex',\n 'margin': '0',\n 'cursor': isDisabled ? 'default' : 'pointer',\n };\n\n return html`\n <div style=\"display: flex; margin-left: var(--lumo-space-m)\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <vaadin-button\n data-testid=\"sign-out\"\n aria-label=${this.t('sign_out').toString()}\n style=${Object.entries(style).reduce((p, [k, v]) => `${p}${k}:${v};`, '')}\n theme=\"icon\"\n ?disabled=${isDisabled}\n @click=${handleClick}\n >\n ${state === 'idle'\n ? html`<iron-icon icon=\"icons:exit-to-app\"></iron-icon>`\n : html`\n <foxy-spinner\n layout=\"no-label\"\n state=${state === 'fail' ? 'error' : 'busy'}\n style=\"margin: auto\"\n lang=${this.lang}\n ns=${[\n this.ns,\n customElements.get('foxy-customer')?.defaultNS ?? '',\n customElements.get('foxy-spinner')?.defaultNS ?? '',\n ].join(' ')}\n >\n </foxy-spinner>\n `}\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSubscriptions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:subscriptions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-subscriptions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .settings=${this.data}\n .customer=${host.data}\n >\n </foxy-internal-customer-portal-subscriptions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n private readonly __renderTransactions: Renderer<Customer> = (html, host) => {\n const scope = 'customer:transactions';\n\n return html`\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-internal-customer-portal-transactions\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(scope).toString()}\n group=${host.group}\n lang=${host.lang}\n ns=${host.ns}\n .templates=${this.getNestedTemplates(scope)}\n .customer=${host.data}\n .columns=${this.transactionsTableColumns}\n >\n </foxy-internal-customer-portal-transactions>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n `;\n };\n\n renderBody(): TemplateResult {\n const hiddenSelector = this.hiddenSelector.zoom('customer');\n const customerHiddenControls = new BooleanSelector(\n [\n 'attributes',\n 'transactions',\n 'subscriptions',\n 'addresses:actions:create',\n 'header:actions:edit:form:is-anonymous',\n 'header:actions:edit:form:forgot-password',\n 'header:actions:edit:form:create',\n 'header:actions:edit:form:delete',\n hiddenSelector.toString(),\n ].join(' ')\n ).toString();\n\n const templates: CustomerTemplates = this.getNestedTemplates('customer');\n const originalHeaderActionsAfterTemplate = templates['header:actions:after'];\n const originalDefaultTemplate = templates['default'];\n\n templates['header:actions:after'] = (html, host) => {\n const isSignOutHidden = hiddenSelector.matches('header:actions:sign-out', true);\n return html`\n <div style=\"display:flex\">\n ${isSignOutHidden ? '' : this.__renderHeaderActionsSignOut()}\n ${originalHeaderActionsAfterTemplate?.(html, host)}\n </div>\n `;\n };\n\n templates['default'] = (html, host) => {\n const renderSubscriptions = this.__renderSubscriptions;\n const renderTransactions = this.__renderTransactions;\n\n return html`\n <style>\n .space-y-m > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(var(--lumo-space-m, 1rem) * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(var(--lumo-space-m, 1rem) * var(--tw-space-y-reverse));\n }\n </style>\n\n ${hiddenSelector.matches('default', true) ? '' : originalDefaultTemplate?.(html, host)}\n\n <div class=\"space-y-m\">\n ${hiddenSelector.matches('subscriptions', true) ? '' : renderSubscriptions(html, host)}\n ${hiddenSelector.matches('transactions', true) ? '' : renderTransactions(html, host)}\n </div>\n `;\n };\n\n return html`\n <foxy-customer\n readonlycontrols=${this.readonlySelector.zoom('customer').toString()}\n disabledcontrols=${this.disabledSelector.zoom('customer').toString()}\n hiddencontrols=${customerHiddenControls}\n data-testid=\"customer\"\n group=${this.group}\n href=${this.customer}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-customer')?.defaultNS ?? ''}\"\n id=\"customer\"\n .templates=${templates}\n .settings=${this.data}\n @update=${() => this.requestUpdate()}\n >\n </foxy-customer>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.loggingOutStateResetTimeout) clearTimeout(this.loggingOutStateResetTimeout);\n }\n\n private get __customerElement() {\n return this.renderRoot.querySelector<Customer>('#customer');\n }\n}\n"]}
@@ -1,24 +1,28 @@
1
- import { CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
2
- declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
3
- inferredProperties: string[];
4
- } & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
1
+ import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
2
+ import type { Resource } from '@foxy.io/sdk/core';
3
+ import type { Rels } from '@foxy.io/sdk/customer';
4
+ import { InternalForm } from '../../internal/InternalForm/InternalForm';
5
+ declare type Data = Resource<Rels.CustomerPortalSettings>;
6
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
7
  defaultNS: string;
6
- } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & {
7
- styles: CSSResultArray;
8
8
  };
9
- export declare class InternalCustomerPortalLoggedOutView extends Base {
9
+ export declare class InternalCustomerPortalLoggedOutView extends Base<Data> {
10
10
  static get properties(): PropertyDeclarations;
11
11
  static get styles(): CSSResultArray;
12
- group: string;
13
- page: 'sign-in' | 'access-recovery';
12
+ page: 'sign-up' | 'sign-in' | 'access-recovery';
14
13
  private readonly __renderAccessRecoveryHeader;
15
14
  private readonly __renderAccessRecoveryBack;
16
15
  private readonly __renderAccessRecoveryForm;
17
16
  private readonly __renderAccessRecovery;
18
17
  private readonly __renderSignInHeader;
19
18
  private readonly __renderSignInRecover;
19
+ private readonly __renderSignInSignUp;
20
20
  private readonly __renderSignInForm;
21
21
  private readonly __renderSignIn;
22
- render(): TemplateResult;
22
+ private readonly __renderSignUpHeader;
23
+ private readonly __renderSignUpGoBack;
24
+ private readonly __renderSignUpForm;
25
+ private readonly __renderSignUp;
26
+ renderBody(): TemplateResult;
23
27
  }
24
28
  export {};
@@ -1,13 +1,11 @@
1
- import { LitElement, css, html, } from 'lit-element';
2
- import { ConfigurableMixin } from "../../../mixins/configurable.js";
3
- import { ThemeableMixin } from "../../../mixins/themeable.js";
4
1
  import { TranslatableMixin } from "../../../mixins/translatable.js";
5
- import { InferrableMixin } from "../../../mixins/inferrable.js";
6
- const Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(InferrableMixin(LitElement))));
2
+ import { BooleanSelector } from '@foxy.io/sdk/core';
3
+ import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
4
+ import { css, html } from 'lit-element';
5
+ const Base = TranslatableMixin(InternalForm);
7
6
  export class InternalCustomerPortalLoggedOutView extends Base {
8
7
  constructor() {
9
8
  super(...arguments);
10
- this.group = '';
11
9
  this.page = 'sign-in';
12
10
  this.__renderAccessRecoveryHeader = () => {
13
11
  var _a, _b, _c, _d;
@@ -16,7 +14,7 @@ export class InternalCustomerPortalLoggedOutView extends Base {
16
14
  const form = this.renderRoot.querySelector(formId);
17
15
  const isBusy = !!(form === null || form === void 0 ? void 0 : form.in('busy'));
18
16
  return html `
19
- <div class="flex flex-col leading-m font-lumo" data-testid="access-recovery:header">
17
+ <div class="flex flex-col leading-s font-lumo" data-testid="access-recovery:header">
20
18
  ${this.renderTemplateOrSlot('access-recovery:header:before')}
21
19
 
22
20
  <foxy-i18n
@@ -99,10 +97,10 @@ export class InternalCustomerPortalLoggedOutView extends Base {
99
97
  const hiddenSelector = this.hiddenSelector.zoom(scope);
100
98
  return html `
101
99
  <div class="h-full flex" data-testid="access-recovery">
102
- <div class="m-auto max-w-20rem flex-1">
100
+ <div class="m-auto max-w-25rem flex-1">
103
101
  ${this.renderTemplateOrSlot(`${scope}:before`)}
104
102
 
105
- <div class="space-y-l">
103
+ <div class="space-y-m">
106
104
  ${hiddenSelector.matches('header', true) ? '' : this.__renderAccessRecoveryHeader()}
107
105
  <div class="space-y-s">
108
106
  ${hiddenSelector.matches('form', true) ? '' : this.__renderAccessRecoveryForm()}
@@ -122,7 +120,7 @@ export class InternalCustomerPortalLoggedOutView extends Base {
122
120
  const form = this.renderRoot.querySelector(formId);
123
121
  const isBusy = !!(form === null || form === void 0 ? void 0 : form.in('busy'));
124
122
  return html `
125
- <div class="flex flex-col leading-m font-lumo" data-testid="sign-in:header">
123
+ <div class="flex flex-col leading-s font-lumo" data-testid="sign-in:header">
126
124
  ${this.renderTemplateOrSlot('sign-in:header:before')}
127
125
 
128
126
  <foxy-i18n
@@ -170,6 +168,27 @@ export class InternalCustomerPortalLoggedOutView extends Base {
170
168
 
171
169
  ${this.renderTemplateOrSlot('sign-in:recover:after')}
172
170
  </div>
171
+ `;
172
+ };
173
+ this.__renderSignInSignUp = () => {
174
+ const form = this.renderRoot.querySelector('#sign-in-form');
175
+ const disabledSelector = this.disabledSelector.zoom('sign-in');
176
+ return html `
177
+ <div>
178
+ ${this.renderTemplateOrSlot('sign-in:signup:before')}
179
+
180
+ <vaadin-button
181
+ data-testid="sign-in:signup"
182
+ class="w-full"
183
+ theme="tertiary"
184
+ ?disabled=${!!(form === null || form === void 0 ? void 0 : form.in('busy')) || disabledSelector.matches('signup', true)}
185
+ @click=${() => (this.page = 'sign-up')}
186
+ >
187
+ <foxy-i18n lang=${this.lang} key="sign_up" ns="${this.ns} sign-in-form"> </foxy-i18n>
188
+ </vaadin-button>
189
+
190
+ ${this.renderTemplateOrSlot('sign-in:signup:after')}
191
+ </div>
173
192
  `;
174
193
  };
175
194
  this.__renderSignInForm = () => {
@@ -200,18 +219,24 @@ export class InternalCustomerPortalLoggedOutView extends Base {
200
219
  `;
201
220
  };
202
221
  this.__renderSignIn = () => {
222
+ var _a, _b;
203
223
  const scope = 'sign-in';
204
224
  const hiddenSelector = this.hiddenSelector.zoom(scope);
225
+ const isSignUpEnabled = ((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.sign_up) === null || _b === void 0 ? void 0 : _b.enabled) === true;
226
+ const isSignUpButtonHidden = hiddenSelector.matches('signup', true) || !isSignUpEnabled;
205
227
  return html `
206
228
  <div class="h-full flex" data-testid="sign-in">
207
- <div class="m-auto max-w-20rem flex-1">
229
+ <div class="m-auto max-w-25rem flex-1">
208
230
  ${this.renderTemplateOrSlot(`${scope}:before`)}
209
231
 
210
- <div class="space-y-l">
232
+ <div class="space-y-m">
211
233
  ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}
212
234
  <div class="space-y-s">
213
235
  ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}
214
- ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}
236
+ <div class="flex justify-center gap-s">
237
+ ${isSignUpButtonHidden ? '' : this.__renderSignInSignUp()}
238
+ ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}
239
+ </div>
215
240
  </div>
216
241
  </div>
217
242
 
@@ -220,6 +245,114 @@ export class InternalCustomerPortalLoggedOutView extends Base {
220
245
  </div>
221
246
  `;
222
247
  };
248
+ this.__renderSignUpHeader = () => {
249
+ const { lang, ns } = this;
250
+ const formId = '#sign-up-form';
251
+ const form = this.renderRoot.querySelector(formId);
252
+ const isBusy = !!(form === null || form === void 0 ? void 0 : form.in('busy'));
253
+ return html `
254
+ <div class="flex flex-col leading-s font-lumo" data-testid="sign-up:header">
255
+ ${this.renderTemplateOrSlot('sign-up:header:before')}
256
+
257
+ <foxy-i18n
258
+ class="text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}"
259
+ lang=${lang}
260
+ key="sign_up"
261
+ ns="${ns} sign-up-form"
262
+ >
263
+ </foxy-i18n>
264
+
265
+ <foxy-i18n
266
+ class="text-l ${isBusy ? 'text-disabled' : 'text-secondary'}"
267
+ lang=${lang}
268
+ key="sign_up_hint"
269
+ ns="${ns} sign-up-form"
270
+ >
271
+ </foxy-i18n>
272
+
273
+ ${this.renderTemplateOrSlot('sign-up:header:after')}
274
+ </div>
275
+ `;
276
+ };
277
+ this.__renderSignUpGoBack = () => {
278
+ const form = this.renderRoot.querySelector('#sign-up-form');
279
+ const disabledSelector = this.disabledSelector.zoom('sign-up');
280
+ return html `
281
+ <div>
282
+ ${this.renderTemplateOrSlot('sign-up:go-back:before')}
283
+
284
+ <vaadin-button
285
+ data-testid="sign-up:go-back"
286
+ class="w-full"
287
+ theme="tertiary-inline"
288
+ ?disabled=${!!(form === null || form === void 0 ? void 0 : form.in('busy')) || disabledSelector.matches('go-back', true)}
289
+ @click=${() => (this.page = 'sign-in')}
290
+ >
291
+ <foxy-i18n lang=${this.lang} key="go_back" ns="${this.ns} sign-up-form"> </foxy-i18n>
292
+ </vaadin-button>
293
+
294
+ ${this.renderTemplateOrSlot('sign-up:go-back:after')}
295
+ </div>
296
+ `;
297
+ };
298
+ this.__renderSignUpForm = () => {
299
+ var _a, _b, _c;
300
+ const siteKey = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.sign_up) === null || _b === void 0 ? void 0 : _b.verification.site_key;
301
+ const scope = 'sign-up:form';
302
+ const hidden = [
303
+ 'tax-id',
304
+ 'is-anonymous',
305
+ 'password-old',
306
+ 'forgot-password',
307
+ 'timestamps',
308
+ 'delete',
309
+ this.hiddenSelector.zoom(scope).toString(),
310
+ ];
311
+ return html `
312
+ <div>
313
+ ${this.renderTemplateOrSlot(`${scope}:before`)}
314
+
315
+ <foxy-customer-form
316
+ readonlycontrols=${this.readonlySelector.zoom(scope).toString()}
317
+ disabledcontrols=${this.disabledSelector.zoom(scope).toString()}
318
+ hiddencontrols=${new BooleanSelector(hidden.join(' ').trim())}
319
+ data-testid="sign-up:form"
320
+ parent="foxy://customer-api/signup"
321
+ group=${this.group}
322
+ lang=${this.lang}
323
+ id="sign-up-form"
324
+ ns="${this.ns} sign-up-form"
325
+ .tosCheckboxSettings=${(_c = this.data) === null || _c === void 0 ? void 0 : _c.tos_checkbox_settings}
326
+ .verification=${siteKey ? { type: 'hcaptcha', siteKey } : null}
327
+ .templates=${this.getNestedTemplates('sign-up:form')}
328
+ .settings=${this.data}
329
+ @update=${() => this.requestUpdate()}
330
+ >
331
+ </foxy-customer-form>
332
+
333
+ ${this.renderTemplateOrSlot(`${scope}:after`)}
334
+ </div>
335
+ `;
336
+ };
337
+ this.__renderSignUp = () => {
338
+ const scope = 'sign-up';
339
+ const hiddenSelector = this.hiddenSelector.zoom(scope);
340
+ return html `
341
+ <div class="h-full flex" data-testid="sign-up">
342
+ <div class="m-auto max-w-25rem flex-1">
343
+ ${this.renderTemplateOrSlot(`${scope}:before`)}
344
+
345
+ <div class="space-y-m">
346
+ ${hiddenSelector.matches('header', true) ? '' : this.__renderSignUpHeader()}
347
+ ${hiddenSelector.matches('form', true) ? '' : this.__renderSignUpForm()}
348
+ ${hiddenSelector.matches('go-back', true) ? '' : this.__renderSignUpGoBack()}
349
+ </div>
350
+
351
+ ${this.renderTemplateOrSlot(`${scope}:after`)}
352
+ </div>
353
+ </div>
354
+ `;
355
+ };
223
356
  }
224
357
  static get properties() {
225
358
  return {
@@ -231,13 +364,13 @@ export class InternalCustomerPortalLoggedOutView extends Base {
231
364
  static get styles() {
232
365
  return [
233
366
  super.styles,
234
- css `.max-w-20rem{
235
- max-width:20rem;
367
+ css `.max-w-25rem{
368
+ max-width:25rem;
236
369
  }
237
370
  `,
238
371
  ];
239
372
  }
240
- render() {
373
+ renderBody() {
241
374
  const { page, hiddenSelector } = this;
242
375
  if (page === 'access-recovery' && !hiddenSelector.matches('access-recovery', true)) {
243
376
  return this.__renderAccessRecovery();
@@ -245,6 +378,9 @@ export class InternalCustomerPortalLoggedOutView extends Base {
245
378
  if (page === 'sign-in' && !hiddenSelector.matches('sign-in', true)) {
246
379
  return this.__renderSignIn();
247
380
  }
381
+ if (page === 'sign-up' && !hiddenSelector.matches('sign-up', true)) {
382
+ return this.__renderSignUp();
383
+ }
248
384
  return html ``;
249
385
  }
250
386
  }