@foxy.io/elements 1.21.1 → 1.22.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 (286) 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 +2 -2
  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-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-card.js +1 -1
  25. package/dist/cdn/foxy-customer-form.js +1 -1
  26. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  27. package/dist/cdn/foxy-customer-portal.js +7 -7
  28. package/dist/cdn/foxy-customer.js +5 -5
  29. package/dist/cdn/foxy-customers-table.js +1 -1
  30. package/dist/cdn/foxy-discount-builder.js +1 -1
  31. package/dist/cdn/foxy-discount-card.js +1 -1
  32. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  33. package/dist/cdn/foxy-donation.js +1 -1
  34. package/dist/cdn/foxy-email-template-card.js +1 -1
  35. package/dist/cdn/foxy-email-template-form.js +1 -1
  36. package/dist/cdn/foxy-error-entry-card.js +1 -1
  37. package/dist/cdn/foxy-form-dialog.js +1 -1
  38. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  39. package/dist/cdn/foxy-gift-card-card.js +1 -1
  40. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  42. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  43. package/dist/cdn/foxy-gift-card-form.js +1 -1
  44. package/dist/cdn/foxy-i18n-editor.js +2 -2
  45. package/dist/cdn/foxy-i18n.js +1 -1
  46. package/dist/cdn/foxy-integration-card.js +1 -1
  47. package/dist/cdn/foxy-integration-form.js +1 -1
  48. package/dist/cdn/foxy-item-card.js +1 -1
  49. package/dist/cdn/foxy-item-category-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-form.js +1 -1
  51. package/dist/cdn/foxy-item-form.js +1 -1
  52. package/dist/cdn/foxy-item-option-card.js +1 -1
  53. package/dist/cdn/foxy-item-option-form.js +1 -1
  54. package/dist/cdn/foxy-items-form.js +1 -1
  55. package/dist/cdn/foxy-pagination.js +1 -1
  56. package/dist/cdn/foxy-payment-card.js +1 -1
  57. package/dist/cdn/foxy-payment-method-card.js +1 -1
  58. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  59. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  60. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  64. package/dist/cdn/foxy-query-builder.js +1 -1
  65. package/dist/cdn/foxy-report-form.js +2 -2
  66. package/dist/cdn/foxy-reports-table.js +1 -1
  67. package/dist/cdn/foxy-shipment-card.js +1 -1
  68. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  69. package/dist/cdn/foxy-sign-in-form.js +1 -1
  70. package/dist/cdn/foxy-spinner.js +1 -1
  71. package/dist/cdn/foxy-store-card.js +1 -0
  72. package/dist/cdn/foxy-store-form.js +1 -1
  73. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  74. package/dist/cdn/foxy-subscription-card.js +1 -1
  75. package/dist/cdn/foxy-subscription-form.js +2 -2
  76. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  77. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  78. package/dist/cdn/foxy-table.js +1 -1
  79. package/dist/cdn/foxy-tax-card.js +1 -1
  80. package/dist/cdn/foxy-tax-form.js +1 -1
  81. package/dist/cdn/foxy-template-config-form.js +1 -1
  82. package/dist/cdn/foxy-template-form.js +1 -1
  83. package/dist/cdn/foxy-template-set-card.js +1 -1
  84. package/dist/cdn/foxy-template-set-form.js +1 -1
  85. package/dist/cdn/foxy-transaction-card.js +1 -1
  86. package/dist/cdn/foxy-transaction.js +1 -1
  87. package/dist/cdn/foxy-transactions-table.js +9 -9
  88. package/dist/cdn/foxy-user-card.js +1 -0
  89. package/dist/cdn/foxy-user-form.js +1 -1
  90. package/dist/cdn/foxy-users-table.js +1 -1
  91. package/dist/cdn/foxy-webhook-card.js +1 -1
  92. package/dist/cdn/foxy-webhook-form.js +1 -1
  93. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  95. package/dist/cdn/{shared-274c49b0.js → shared-01af9591.js} +1 -1
  96. package/dist/cdn/shared-0d2ac2bf.js +1 -0
  97. package/dist/cdn/shared-0e0632a7.js +1 -0
  98. package/dist/cdn/{shared-81f9dc9a.js → shared-14202046.js} +1 -1
  99. package/dist/cdn/{shared-efc1aeae.js → shared-146d31e3.js} +1 -1
  100. package/dist/cdn/shared-17e8a23b.js +1 -0
  101. package/dist/cdn/{shared-d3bf404a.js → shared-1a1f739c.js} +1 -1
  102. package/dist/cdn/{shared-62d636b5.js → shared-1c2b06d9.js} +1 -1
  103. package/dist/cdn/{shared-9f905d9f.js → shared-1e7e13c1.js} +1 -1
  104. package/dist/cdn/{shared-639c666f.js → shared-1f4510ea.js} +1 -1
  105. package/dist/cdn/{shared-0ce006b9.js → shared-22e7642d.js} +1 -1
  106. package/dist/cdn/{shared-83596b46.js → shared-2ab995c2.js} +1 -1
  107. package/dist/cdn/{shared-08156595.js → shared-2cdd9cfd.js} +2 -2
  108. package/dist/cdn/{shared-88c4cfec.js → shared-3945506e.js} +1 -1
  109. package/dist/cdn/shared-399a781f.js +1 -0
  110. package/dist/cdn/{shared-6cb1015f.js → shared-3d5adeab.js} +1 -1
  111. package/dist/cdn/{shared-be66c2e7.js → shared-3f04827e.js} +1 -1
  112. package/dist/cdn/{shared-e262920d.js → shared-412affb4.js} +1 -1
  113. package/dist/cdn/{shared-5378bd8c.js → shared-45a9193f.js} +1 -1
  114. package/dist/cdn/{shared-d8dc97f0.js → shared-4af5329d.js} +1 -1
  115. package/dist/cdn/{shared-404aa9cc.js → shared-4ce1c116.js} +1 -1
  116. package/dist/cdn/{shared-71d8d167.js → shared-4d441506.js} +1 -1
  117. package/dist/cdn/{shared-9f436277.js → shared-4e34cfb5.js} +1 -1
  118. package/dist/cdn/{shared-242b3ee9.js → shared-577cab08.js} +1 -1
  119. package/dist/cdn/{shared-f621ccee.js → shared-5db24a3c.js} +2 -2
  120. package/dist/cdn/{shared-be99323d.js → shared-606449c3.js} +1 -1
  121. package/dist/cdn/{shared-2092d86f.js → shared-63ed0be3.js} +1 -1
  122. package/dist/cdn/{shared-2cc638ad.js → shared-6fb007df.js} +2 -2
  123. package/dist/cdn/{shared-ed0dee03.js → shared-711b1d11.js} +1 -1
  124. package/dist/cdn/{shared-c8f5c306.js → shared-727058e8.js} +1 -1
  125. package/dist/cdn/{shared-08e27fe9.js → shared-889ec003.js} +3 -3
  126. package/dist/cdn/{shared-bd252323.js → shared-9227d2e5.js} +1 -1
  127. package/dist/cdn/{shared-5ea18e60.js → shared-959c976b.js} +1 -1
  128. package/dist/cdn/{shared-7097364f.js → shared-97a723fa.js} +1 -1
  129. package/dist/cdn/{shared-ee5a7812.js → shared-97da5c82.js} +1 -1
  130. package/dist/cdn/{shared-747b6d74.js → shared-9a11f821.js} +1 -1
  131. package/dist/cdn/{shared-f7e4cd67.js → shared-9be9d167.js} +1 -1
  132. package/dist/cdn/{shared-d807ae5c.js → shared-9c898ce5.js} +2 -2
  133. package/dist/cdn/{shared-4849ef5b.js → shared-9cfb3149.js} +1 -1
  134. package/dist/cdn/{shared-5a4829e3.js → shared-a2d07dc8.js} +1 -1
  135. package/dist/cdn/{shared-8f8abcd6.js → shared-b0508df4.js} +1 -1
  136. package/dist/cdn/shared-b22c63cc.js +1 -0
  137. package/dist/cdn/{shared-454f172e.js → shared-b5a6dea8.js} +1 -1
  138. package/dist/cdn/{shared-6f5c3101.js → shared-bb8287f7.js} +1 -1
  139. package/dist/cdn/{shared-8c11a711.js → shared-bd52f4a0.js} +1 -1
  140. package/dist/cdn/{shared-3dbe9aaa.js → shared-bd87e451.js} +1 -1
  141. package/dist/cdn/{shared-cbdf08d8.js → shared-bee7a953.js} +1 -1
  142. package/dist/cdn/{shared-a01b5597.js → shared-d2b2c3c3.js} +1 -1
  143. package/dist/cdn/{shared-62c088b7.js → shared-d5e7c2d0.js} +1 -1
  144. package/dist/cdn/{shared-bc814810.js → shared-e6b54b51.js} +1 -1
  145. package/dist/cdn/{shared-7d4fb1a2.js → shared-e9975921.js} +1 -1
  146. package/dist/cdn/{shared-a2d619b4.js → shared-ec5bb132.js} +1 -1
  147. package/dist/cdn/{shared-ca87cf22.js → shared-eed6272b.js} +1 -1
  148. package/dist/cdn/{shared-61e74612.js → shared-fac390a7.js} +4 -4
  149. package/dist/cdn/{shared-3d241b7f.js → shared-fe74f52a.js} +1 -1
  150. package/dist/cdn/shared-febaf6ac.js +1 -0
  151. package/dist/cdn/translations/store-card/en.json +7 -0
  152. package/dist/cdn/translations/user-card/en.json +8 -0
  153. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +1 -1
  154. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +5 -1
  155. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  156. package/dist/elements/internal/InternalDetails/InternalDetails.js +1 -1
  157. package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -1
  158. package/dist/elements/private/Page/Page.js +1 -1
  159. package/dist/elements/private/Page/Page.js.map +1 -1
  160. package/dist/elements/private/Section/Section.js +1 -1
  161. package/dist/elements/private/Section/Section.js.map +1 -1
  162. package/dist/elements/private/Switch/Switch.js +1 -1
  163. package/dist/elements/private/Switch/Switch.js.map +1 -1
  164. package/dist/elements/private/Tabs/Tabs.js +1 -1
  165. package/dist/elements/private/Tabs/Tabs.js.map +1 -1
  166. package/dist/elements/public/AddressCard/AddressCard.js +1 -1
  167. package/dist/elements/public/AddressCard/AddressCard.js.map +1 -1
  168. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +1 -1
  169. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
  170. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +2 -2
  171. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  172. package/dist/elements/public/CartCard/CartCard.js +1 -1
  173. package/dist/elements/public/CartCard/CartCard.js.map +1 -1
  174. package/dist/elements/public/CartForm/CartForm.js +4 -4
  175. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  176. package/dist/elements/public/CouponCard/CouponCard.js +1 -1
  177. package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
  178. package/dist/elements/public/CouponForm/CouponForm.js +3 -3
  179. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  180. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  181. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  182. package/dist/elements/public/Customer/Customer.js +4 -4
  183. package/dist/elements/public/Customer/Customer.js.map +1 -1
  184. package/dist/elements/public/CustomerCard/CustomerCard.js +1 -1
  185. package/dist/elements/public/CustomerCard/CustomerCard.js.map +1 -1
  186. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js +8 -8
  187. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.js.map +1 -1
  188. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -2
  189. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  190. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +1 -1
  191. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  192. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js +1 -1
  193. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js.map +1 -1
  194. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +3 -3
  195. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  196. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js +4 -4
  197. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js.map +1 -1
  198. package/dist/elements/public/GiftCardCard/GiftCardCard.js +1 -1
  199. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -1
  200. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +1 -1
  201. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +1 -1
  202. package/dist/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.js +3 -3
  203. package/dist/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.js.map +1 -1
  204. package/dist/elements/public/IntegrationCard/IntegrationCard.js +3 -3
  205. package/dist/elements/public/IntegrationCard/IntegrationCard.js.map +1 -1
  206. package/dist/elements/public/IntegrationForm/IntegrationForm.js +3 -3
  207. package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
  208. package/dist/elements/public/ItemCard/ItemCard.js +1 -1
  209. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  210. package/dist/elements/public/PaymentCard/PaymentCard.js +3 -3
  211. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  212. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js +3 -3
  213. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js.map +1 -1
  214. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +4 -4
  215. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  216. package/dist/elements/public/QueryBuilder/components/Group.js +1 -1
  217. package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
  218. package/dist/elements/public/ReportsTable/ReportsTable.js +1 -1
  219. package/dist/elements/public/ReportsTable/ReportsTable.js.map +1 -1
  220. package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js +1 -1
  221. package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js.map +1 -1
  222. package/dist/elements/public/SignInForm/SignInForm.js +1 -1
  223. package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
  224. package/dist/elements/public/StoreCard/StoreCard.d.ts +26 -0
  225. package/dist/elements/public/StoreCard/StoreCard.js +41 -0
  226. package/dist/elements/public/StoreCard/StoreCard.js.map +1 -0
  227. package/dist/elements/public/StoreCard/index.d.ts +5 -0
  228. package/dist/elements/public/StoreCard/index.js +7 -0
  229. package/dist/elements/public/StoreCard/index.js.map +1 -0
  230. package/dist/elements/public/StoreCard/types.d.ts +3 -0
  231. package/dist/elements/public/StoreCard/types.js +2 -0
  232. package/dist/elements/public/StoreCard/types.js.map +1 -0
  233. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  234. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  235. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +2 -2
  236. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  237. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +1 -1
  238. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  239. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +3 -3
  240. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
  241. package/dist/elements/public/TaxCard/TaxCard.js +1 -1
  242. package/dist/elements/public/TaxCard/TaxCard.js.map +1 -1
  243. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +2 -2
  244. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  245. package/dist/elements/public/TransactionCard/TransactionCard.js +1 -1
  246. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  247. package/dist/elements/public/TransactionsTable/TransactionsTable.js +2 -2
  248. package/dist/elements/public/TransactionsTable/TransactionsTable.js.map +1 -1
  249. package/dist/elements/public/UserCard/UserCard.d.ts +22 -0
  250. package/dist/elements/public/UserCard/UserCard.js +29 -0
  251. package/dist/elements/public/UserCard/UserCard.js.map +1 -0
  252. package/dist/elements/public/UserCard/index.d.ts +5 -0
  253. package/dist/elements/public/UserCard/index.js +7 -0
  254. package/dist/elements/public/UserCard/index.js.map +1 -0
  255. package/dist/elements/public/UserCard/types.d.ts +3 -0
  256. package/dist/elements/public/UserCard/types.js +2 -0
  257. package/dist/elements/public/UserCard/types.js.map +1 -0
  258. package/dist/elements/public/UserForm/UserForm.d.ts +32 -9
  259. package/dist/elements/public/UserForm/UserForm.js +116 -82
  260. package/dist/elements/public/UserForm/UserForm.js.map +1 -1
  261. package/dist/elements/public/UserForm/index.d.ts +1 -0
  262. package/dist/elements/public/UserForm/index.js +1 -0
  263. package/dist/elements/public/UserForm/index.js.map +1 -1
  264. package/dist/elements/public/UserForm/types.d.ts +22 -3
  265. package/dist/elements/public/UserForm/types.js.map +1 -1
  266. package/dist/elements/public/WebhookCard/WebhookCard.js +1 -1
  267. package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -1
  268. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js +1 -1
  269. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js.map +1 -1
  270. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js +1 -1
  271. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js.map +1 -1
  272. package/dist/elements/public/index.d.ts +2 -0
  273. package/dist/elements/public/index.defined.d.ts +2 -0
  274. package/dist/elements/public/index.defined.js +2 -0
  275. package/dist/elements/public/index.defined.js.map +1 -1
  276. package/dist/elements/public/index.js +2 -0
  277. package/dist/elements/public/index.js.map +1 -1
  278. package/dist/mixins/themeable.js +0 -8
  279. package/dist/mixins/themeable.js.map +1 -1
  280. package/package.json +2 -2
  281. package/dist/cdn/shared-1433fc29.js +0 -1
  282. package/dist/cdn/shared-45926e43.js +0 -1
  283. package/dist/cdn/shared-5c804971.js +0 -1
  284. package/dist/cdn/shared-94fc438b.js +0 -1
  285. package/dist/cdn/shared-a29b600a.js +0 -1
  286. package/dist/cdn/shared-c6a01446.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Customer.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/Customer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attributes, CustomerAddresses, Data, Tab, Templates } from './types';\nimport { CSSResultArray, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data as Attribute } from '../AttributeCard/types';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { Column } from '../Table/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data as CustomerAddress } from '../AddressCard/types';\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { Group } from '../../private/index';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { Skeleton } from '../../private/Skeleton/Skeleton';\nimport { Data as Subscriptions } from '../SubscriptionsTable/types';\nimport { SubscriptionsTable } from '../SubscriptionsTable/SubscriptionsTable';\nimport { Tabs } from '../../private/Tabs/Tabs';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { styles } from './styles';\n\nconst NS = 'customer';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * All-in-one element for customer management.\n *\n * @slot header:before - **new in v1.4.0**\n * @slot header:after - **new in v1.4.0**\n * @slot header:actions:before - **new in v1.4.0**\n * @slot header:actions:after - **new in v1.4.0**\n * @slot header:actions:edit:before - **new in v1.4.0**\n * @slot header:actions:edit:after - **new in v1.4.0**\n *\n * @slot addresses:before - **new in v1.4.0**\n * @slot addresses:after - **new in v1.4.0**\n * @slot addresses:actions:before - **new in v1.4.0**\n * @slot addresses:actions:after - **new in v1.4.0**\n * @slot addresses:actions:create:before - **new in v1.4.0**\n * @slot addresses:actions:create:after - **new in v1.4.0**\n * @slot addresses:list:before - **new in v1.4.0**\n * @slot addresses:list:after - **new in v1.4.0**\n *\n * @slot payment-methods:before - **new in v1.4.0**\n * @slot payment-methods:after - **new in v1.4.0**\n * @slot payment-methods:list:before - **new in v1.4.0**\n * @slot payment-methods:list:after - **new in v1.4.0**\n *\n * @slot attributes:before - **new in v1.4.0**\n * @slot attributes:after - **new in v1.4.0**\n * @slot attributes:actions:before - **new in v1.4.0**\n * @slot attributes:actions:after - **new in v1.4.0**\n * @slot attributes:actions:create:before - **new in v1.4.0**\n * @slot attributes:actions:create:after - **new in v1.4.0**\n * @slot attributes:list:before - **new in v1.4.0**\n * @slot attributes:list:after - **new in v1.4.0**\n *\n * @slot transactions:before - **new in v1.4.0**\n * @slot transactions:after - **new in v1.4.0**\n *\n * @slot subscriptions:before - **new in v1.4.0**\n * @slot subscriptions:after - **new in v1.4.0**\n *\n * @element foxy-customer\n * @since 1.2.0\n */\nexport class Customer extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-payment-method-card': customElements.get('foxy-payment-method-card'),\n 'foxy-transactions-table': customElements.get('foxy-transactions-table'),\n 'foxy-collection-pages': customElements.get('foxy-collection-pages'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-attribute-card': customElements.get('foxy-attribute-card'),\n 'foxy-address-card': customElements.get('foxy-address-card'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n 'x-tabs': Tabs,\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n templates: Templates = {};\n\n // #region header\n\n private readonly __renderHeaderActionsEdit = () => {\n const { readonlySelector, disabledSelector, hiddenSelector } = this;\n\n const actionId = 'header:actions:edit';\n const formId = 'header:actions:edit:form';\n const dialogId = 'customer-dialog';\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isEditActionDisabled = !isLoaded || disabledSelector.matches(actionId, true);\n\n return html`\n ${this.renderTemplateOrSlot('header:actions:edit:before')}\n\n <foxy-form-dialog\n data-testid=\"header:actions:edit:form\"\n header=\"update\"\n parent=${this.parent}\n group=${this.group}\n href=${this.href}\n form=\"foxy-customer-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=${dialogId}\n readonlycontrols=${readonlySelector.zoom(formId).toString()}\n disabledcontrols=${disabledSelector.zoom(formId).toString()}\n hiddencontrols=${hiddenSelector.zoom(formId).toString()}\n .templates=${this.getNestedTemplates('header:actions:edit:form')}\n >\n </foxy-form-dialog>\n\n <vaadin-button\n data-testid=\"header:actions:edit\"\n aria-label=${this.t('update').toString()}\n class=\"px-xs rounded-full\"\n theme=\"icon\"\n ?disabled=${isEditActionDisabled}\n @click=${(evt: Event) => {\n const dialog = this.renderRoot.querySelector(`#${dialogId}`) as FormDialog;\n dialog.show(evt.currentTarget as HTMLElement);\n }}\n >\n <iron-icon icon=\"editor:mode-edit\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('header:actions:edit:after')}\n `;\n };\n\n private readonly __renderHeaderActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('header:actions');\n\n return html`\n <div class=\"flex\" data-testid=\"header:actions\">\n ${this.renderTemplateOrSlot('header:actions:before')}\n ${hiddenSelector.matches('edit', true) ? '' : this.__renderHeaderActionsEdit()}\n ${this.renderTemplateOrSlot('header:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderHeader = () => {\n const variant = ifDefined(this.in('busy') ? undefined : 'static');\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <header\n class=\"flex items-center justify-between space-x-m pb-s border-b border-contrast-10\"\n data-testid=\"header\"\n >\n <h1 class=\"text-xxl font-bold truncate min-w-0 flex-1\">\n ${this.in({ idle: 'snapshot' })\n ? html`${this.data.first_name} ${this.data.last_name}`\n : html`<x-skeleton class=\"w-full\" variant=${variant}>&nbsp;</x-skeleton>`}\n </h1>\n\n ${this.hiddenSelector.matches('header:actions', true) ? '' : this.__renderHeaderActions()}\n </header>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n // #endregion\n\n // #region addresses\n\n private readonly __renderAddressesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('addresses:actions');\n const readonlySelector = this.readonlySelector.zoom('addresses:actions');\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('addresses:actions:create:before')}\n\n <vaadin-button\n data-testid=\"addresses:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"addresses:actions:create:form\"\n parent=${data?._links['fx:customer_addresses'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${lang}\n ns=${ns}\n id=\"address-dialog\"\n .templates=${this.getNestedTemplates('addresses:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('addresses:actions:create:after')}\n `;\n };\n\n private readonly __renderAddressesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n return html`\n <div data-testid=\"addresses:actions\">\n ${this.renderTemplateOrSlot('addresses:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAddressesActionsCreate()}\n ${this.renderTemplateOrSlot('addresses:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAddressesListCard: ItemRenderer<CustomerAddress> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#addresses-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0': true,\n 'border border-contrast-10': true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n const isReadonly = this.readonlySelector.matches('addresses:list:card', true);\n const isDisabled = this.disabledSelector.matches('addresses:list:card', true);\n\n return html`\n <button\n data-testclass=\"addresses:list:card\"\n class=${computedClass}\n ?disabled=${!ctx.data || isReadonly || isDisabled}\n @click=${handleClick}\n >\n <foxy-address-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n class=\"w-tile\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-address-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-address-card>\n </button>\n `;\n };\n\n private readonly __renderAddressesListPage: PageRenderer<CustomerAddresses> = ctx => {\n return ctx.html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAddressesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAddressesList = () => {\n const formId = 'addresses:list:form';\n const cardId = 'addresses:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('addresses:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=\"addresses:list:form\"\n parent=${this.data?._links['fx:customer_addresses'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"addresses-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=\"addresses:list\"\n first=${this.data?._links['fx:customer_addresses'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAddressesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('addresses:list:after')}\n `;\n };\n\n private readonly __renderAddresses = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('addresses');\n\n return html`\n ${this.renderTemplateOrSlot('addresses:before')}\n\n <section class=\"pt-m\" data-testid=\"addresses\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-semibold\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"address_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAddressesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAddressesList()}\n </section>\n\n ${this.renderTemplateOrSlot('addresses:after')}\n `;\n };\n\n // #endregion\n\n // #region payment-methods\n\n private readonly __renderPaymentMethodsList = () => {\n const cardId = 'payment-methods:list:card';\n\n return html`\n <div data-testid=\"payment-methods:list\">\n ${this.renderTemplateOrSlot('payment-methods:list:before')}\n\n <foxy-payment-method-card\n readonlycontrols=${this.readonlySelector.zoom(cardId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(cardId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=${cardId}\n group=${this.group}\n class=\"w-payment-method-card border-radius-overflow-fix rounded-t-l rounded-b-l overflow-hidden\"\n href=${this.data?._links['fx:default_payment_method'].href ?? ''}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-payment-method-card')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-payment-method-card>\n\n ${this.renderTemplateOrSlot('payment-methods:list:after')}\n </div>\n `;\n };\n\n private readonly __renderPaymentMethods = () => {\n const hiddenSelector = this.hiddenSelector.zoom('payment-methods');\n\n return html`\n ${this.renderTemplateOrSlot('payment-methods:before')}\n\n <div class=\"pt-m\" data-testid=\"payment-methods\">\n <h2 class=\"text-l font-semibold mb-s\">\n <foxy-i18n\n data-testclass=\"i18n\"\n lang=${this.lang}\n key=\"payment_method_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderPaymentMethodsList()}\n </div>\n\n ${this.renderTemplateOrSlot('payment-methods:after')}\n `;\n };\n\n // #endregion\n\n // #region attributes\n\n private readonly __renderAttributesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('attributes:actions');\n const readonlySelector = this.readonlySelector.zoom('attributes:actions');\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('attributes:actions:create:before')}\n\n <vaadin-button\n data-testid=\"attributes:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"attributes:actions:create:form\"\n parent=${data?._links['fx:attributes'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${lang}\n ns=${ns}\n .templates=${this.getNestedTemplates('attributes:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('attributes:actions:create:after')}\n `;\n };\n\n private readonly __renderAttributesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n return html`\n <div data-testid=\"attributes:actions\">\n ${this.renderTemplateOrSlot('attributes:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAttributesActionsCreate()}\n ${this.renderTemplateOrSlot('attributes:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAttributesListCard: ItemRenderer<Attribute> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#attributes-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0 border border-contrast-10':\n true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n return ctx.html`\n <button \n data-testclass=\"attributes:list:card\"\n class=${computedClass}\n ?disabled=${ctx.data === null}\n @click=${handleClick}\n >\n <foxy-attribute-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n group=${ctx.group}\n class=\"w-tile\"\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-attribute-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-attribute-card>\n </button>\n `;\n };\n\n private readonly __renderAttributesListPage: PageRenderer<Attributes> = ctx => {\n return html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAttributesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAttributesList = () => {\n const formId = 'attributes:list:form';\n const cardId = 'attributes:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('attributes:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testclass=\"i18n\"\n data-testid=\"attributes:list:form\"\n parent=${this.data?._links['fx:attributes'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"attributes-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenControls.zoom(cardId).toString()}\n data-testid=\"attributes:list\"\n first=${this.data?._links['fx:attributes'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAttributesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('attributes:list:after')}\n `;\n };\n\n private readonly __renderAttributes = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('attributes');\n\n return html`\n ${this.renderTemplateOrSlot('attributes:before')}\n\n <section class=\"pt-m\" data-testid=\"attributes\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-semibold\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"attribute_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAttributesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAttributesList()}\n </section>\n\n ${this.renderTemplateOrSlot('attributes:after')}\n `;\n };\n\n // #endregion\n\n // #region transactions\n\n private readonly __renderTransactions = () => {\n let transactionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const transactionsURL = new URL(this.data._links['fx:transactions'].href);\n transactionsURL.searchParams.set('zoom', 'items');\n transactionsLink = transactionsURL.toString();\n }\n\n return html`\n ${this.renderTemplateOrSlot('transactions:before')}\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"transactions\"\n spinner=\"foxy-spinner\"\n first=${transactionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n page=\"foxy-transactions-table\"\n lang=${this.lang}\n ns=${this.ns}\n .templates=${this.getNestedTemplates('transactions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('transactions:after')}\n `;\n };\n\n // #endregion\n\n // #region subscriptions\n\n private readonly __subscriptionsTableColumns: Column<Subscriptions>[] = [\n SubscriptionsTable.priceColumn,\n SubscriptionsTable.summaryColumn,\n SubscriptionsTable.statusColumn,\n {\n cell: ({ html, lang, data }) => html`\n <vaadin-button\n data-testclass=\"edit\"\n theme=\"small tertiary-inline\"\n @click=${(evt: Event) => {\n const link = new URL(data._links.self.href);\n const form = this.renderRoot.querySelector('#subscriptions-form') as FormDialog;\n const button = evt.target as ButtonElement;\n\n link.searchParams.set('zoom', 'transaction_template:items');\n form.href = link.toString();\n form.show(button);\n }}\n >\n <foxy-i18n class=\"text-m\" lang=${lang} key=\"update\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n `,\n },\n ];\n\n private readonly __renderSubscriptionsPage: PageRenderer<Subscriptions> = ({ html, ...ctx }) => {\n return html`\n <foxy-table\n data-testclass=\"subscriptions:pages:table\"\n group=${ctx.group}\n href=${ctx.href}\n lang=${ctx.lang}\n ns=\"${ctx.ns} subscriptions-table\"\n .columns=${this.__subscriptionsTableColumns}\n .templates=${ctx.templates}\n >\n </foxy-table>\n `;\n };\n\n private readonly __renderSubscriptions = () => {\n const formId = 'subscriptions:form';\n let subscriptionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const subscriptionsURL = new URL(this.data._links['fx:subscriptions'].href);\n subscriptionsURL.searchParams.set('zoom', 'transaction_template:items');\n subscriptionsLink = subscriptionsURL.toString();\n }\n\n return html`\n <div data-testid=\"subscriptions\">\n ${this.renderTemplateOrSlot('subscriptions:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=${formId}\n header=\"update\"\n group=${this.group}\n form=\"foxy-subscription-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscriptions-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"subscriptions:pages\"\n spinner=\"foxy-spinner\"\n first=${subscriptionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderSubscriptionsPage}\n .templates=${this.getNestedTemplates('subscriptions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('subscriptions:after')}\n </div>\n `;\n };\n\n // #endregion\n\n // #region tabs\n\n private readonly __renderTabs = (tabs: Tab[]) => {\n return html`\n <div class=\"pt-m\">\n <x-tabs size=${tabs.length} ?disabled=${!this.in({ idle: 'snapshot' })}>\n ${tabs.map(\n (tab, index) => html`\n <foxy-i18n\n data-testclass=\"i18n\"\n slot=\"tab-${index}\"\n lang=${this.lang}\n key=${tab.title}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div slot=\"panel-${index}\">${tab.content}</div>\n `\n )}\n </x-tabs>\n </div>\n `;\n };\n\n // #endregion\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const isLoaded = this.in({ idle: 'snapshot' });\n const isBusy = this.in('busy');\n const tabs: Tab[] = [];\n\n if (!hiddenSelector.matches('transactions', true)) {\n tabs.push({ title: 'transaction_plural', content: this.__renderTransactions() });\n }\n\n if (!hiddenSelector.matches('subscriptions', true)) {\n tabs.push({ title: 'subscription_plural', content: this.__renderSubscriptions() });\n }\n\n return html`\n <div class=\"relative\" data-testid=\"wrapper\" aria-busy=${isBusy} aria-live=\"polite\">\n <div\n class=${classMap({\n 'font-lumo text-body text-m leading-m space-y-s': true,\n 'opacity-50': !isLoaded,\n })}\n >\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('default', true) ? '' : this.renderTemplateOrSlot()}\n ${hiddenSelector.matches('addresses', true) ? '' : this.__renderAddresses()}\n ${hiddenSelector.matches('payment-methods', true) ? '' : this.__renderPaymentMethods()}\n ${hiddenSelector.matches('attributes', true) ? '' : this.__renderAttributes()}\n ${tabs.length === 0 ? '' : this.__renderTabs(tabs)}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': isLoaded,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"Customer.js","sourceRoot":"","sources":["../../../../src/elements/public/Customer/Customer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attributes, CustomerAddresses, Data, Tab, Templates } from './types';\nimport { CSSResultArray, TemplateResult, html } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data as Attribute } from '../AttributeCard/types';\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { Column } from '../Table/types';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { Data as CustomerAddress } from '../AddressCard/types';\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { Group } from '../../private/index';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { Skeleton } from '../../private/Skeleton/Skeleton';\nimport { Data as Subscriptions } from '../SubscriptionsTable/types';\nimport { SubscriptionsTable } from '../SubscriptionsTable/SubscriptionsTable';\nimport { Tabs } from '../../private/Tabs/Tabs';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { styles } from './styles';\n\nconst NS = 'customer';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * All-in-one element for customer management.\n *\n * @slot header:before - **new in v1.4.0**\n * @slot header:after - **new in v1.4.0**\n * @slot header:actions:before - **new in v1.4.0**\n * @slot header:actions:after - **new in v1.4.0**\n * @slot header:actions:edit:before - **new in v1.4.0**\n * @slot header:actions:edit:after - **new in v1.4.0**\n *\n * @slot addresses:before - **new in v1.4.0**\n * @slot addresses:after - **new in v1.4.0**\n * @slot addresses:actions:before - **new in v1.4.0**\n * @slot addresses:actions:after - **new in v1.4.0**\n * @slot addresses:actions:create:before - **new in v1.4.0**\n * @slot addresses:actions:create:after - **new in v1.4.0**\n * @slot addresses:list:before - **new in v1.4.0**\n * @slot addresses:list:after - **new in v1.4.0**\n *\n * @slot payment-methods:before - **new in v1.4.0**\n * @slot payment-methods:after - **new in v1.4.0**\n * @slot payment-methods:list:before - **new in v1.4.0**\n * @slot payment-methods:list:after - **new in v1.4.0**\n *\n * @slot attributes:before - **new in v1.4.0**\n * @slot attributes:after - **new in v1.4.0**\n * @slot attributes:actions:before - **new in v1.4.0**\n * @slot attributes:actions:after - **new in v1.4.0**\n * @slot attributes:actions:create:before - **new in v1.4.0**\n * @slot attributes:actions:create:after - **new in v1.4.0**\n * @slot attributes:list:before - **new in v1.4.0**\n * @slot attributes:list:after - **new in v1.4.0**\n *\n * @slot transactions:before - **new in v1.4.0**\n * @slot transactions:after - **new in v1.4.0**\n *\n * @slot subscriptions:before - **new in v1.4.0**\n * @slot subscriptions:after - **new in v1.4.0**\n *\n * @element foxy-customer\n * @since 1.2.0\n */\nexport class Customer extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-payment-method-card': customElements.get('foxy-payment-method-card'),\n 'foxy-transactions-table': customElements.get('foxy-transactions-table'),\n 'foxy-collection-pages': customElements.get('foxy-collection-pages'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-attribute-card': customElements.get('foxy-attribute-card'),\n 'foxy-address-card': customElements.get('foxy-address-card'),\n 'foxy-form-dialog': customElements.get('foxy-form-dialog'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-table': customElements.get('foxy-table'),\n 'x-skeleton': Skeleton,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n 'x-tabs': Tabs,\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n templates: Templates = {};\n\n // #region header\n\n private readonly __renderHeaderActionsEdit = () => {\n const { readonlySelector, disabledSelector, hiddenSelector } = this;\n\n const actionId = 'header:actions:edit';\n const formId = 'header:actions:edit:form';\n const dialogId = 'customer-dialog';\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isEditActionDisabled = !isLoaded || disabledSelector.matches(actionId, true);\n\n return html`\n ${this.renderTemplateOrSlot('header:actions:edit:before')}\n\n <foxy-form-dialog\n data-testid=\"header:actions:edit:form\"\n header=\"update\"\n parent=${this.parent}\n group=${this.group}\n href=${this.href}\n form=\"foxy-customer-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=${dialogId}\n readonlycontrols=${readonlySelector.zoom(formId).toString()}\n disabledcontrols=${disabledSelector.zoom(formId).toString()}\n hiddencontrols=${hiddenSelector.zoom(formId).toString()}\n .templates=${this.getNestedTemplates('header:actions:edit:form')}\n >\n </foxy-form-dialog>\n\n <vaadin-button\n data-testid=\"header:actions:edit\"\n aria-label=${this.t('update').toString()}\n class=\"px-xs rounded-full\"\n theme=\"icon\"\n ?disabled=${isEditActionDisabled}\n @click=${(evt: Event) => {\n const dialog = this.renderRoot.querySelector(`#${dialogId}`) as FormDialog;\n dialog.show(evt.currentTarget as HTMLElement);\n }}\n >\n <iron-icon icon=\"editor:mode-edit\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('header:actions:edit:after')}\n `;\n };\n\n private readonly __renderHeaderActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('header:actions');\n\n return html`\n <div class=\"flex\" data-testid=\"header:actions\">\n ${this.renderTemplateOrSlot('header:actions:before')}\n ${hiddenSelector.matches('edit', true) ? '' : this.__renderHeaderActionsEdit()}\n ${this.renderTemplateOrSlot('header:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderHeader = () => {\n const variant = ifDefined(this.in('busy') ? undefined : 'static');\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <header\n class=\"flex items-center justify-between space-x-m pb-s border-b border-contrast-10\"\n data-testid=\"header\"\n >\n <h1 class=\"text-xxl font-medium truncate min-w-0 flex-1\">\n ${this.in({ idle: 'snapshot' })\n ? html`${this.data.first_name} ${this.data.last_name}`\n : html`<x-skeleton class=\"w-full\" variant=${variant}>&nbsp;</x-skeleton>`}\n </h1>\n\n ${this.hiddenSelector.matches('header:actions', true) ? '' : this.__renderHeaderActions()}\n </header>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n // #endregion\n\n // #region addresses\n\n private readonly __renderAddressesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('addresses:actions');\n const readonlySelector = this.readonlySelector.zoom('addresses:actions');\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('addresses:actions:create:before')}\n\n <vaadin-button\n data-testid=\"addresses:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"addresses:actions:create:form\"\n parent=${data?._links['fx:customer_addresses'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${lang}\n ns=${ns}\n id=\"address-dialog\"\n .templates=${this.getNestedTemplates('addresses:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('addresses:actions:create:after')}\n `;\n };\n\n private readonly __renderAddressesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('addresses:actions');\n\n return html`\n <div data-testid=\"addresses:actions\">\n ${this.renderTemplateOrSlot('addresses:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAddressesActionsCreate()}\n ${this.renderTemplateOrSlot('addresses:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAddressesListCard: ItemRenderer<CustomerAddress> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#addresses-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0': true,\n 'border border-contrast-10': true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n const isReadonly = this.readonlySelector.matches('addresses:list:card', true);\n const isDisabled = this.disabledSelector.matches('addresses:list:card', true);\n\n return html`\n <button\n data-testclass=\"addresses:list:card\"\n class=${computedClass}\n ?disabled=${!ctx.data || isReadonly || isDisabled}\n @click=${handleClick}\n >\n <foxy-address-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n class=\"w-tile\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-address-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-address-card>\n </button>\n `;\n };\n\n private readonly __renderAddressesListPage: PageRenderer<CustomerAddresses> = ctx => {\n return ctx.html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAddressesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAddressesList = () => {\n const formId = 'addresses:list:form';\n const cardId = 'addresses:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('addresses:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=\"addresses:list:form\"\n parent=${this.data?._links['fx:customer_addresses'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-address-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"addresses-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=\"addresses:list\"\n first=${this.data?._links['fx:customer_addresses'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAddressesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('addresses:list:after')}\n `;\n };\n\n private readonly __renderAddresses = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('addresses');\n\n return html`\n ${this.renderTemplateOrSlot('addresses:before')}\n\n <section class=\"pt-m\" data-testid=\"addresses\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"address_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAddressesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAddressesList()}\n </section>\n\n ${this.renderTemplateOrSlot('addresses:after')}\n `;\n };\n\n // #endregion\n\n // #region payment-methods\n\n private readonly __renderPaymentMethodsList = () => {\n const cardId = 'payment-methods:list:card';\n\n return html`\n <div data-testid=\"payment-methods:list\">\n ${this.renderTemplateOrSlot('payment-methods:list:before')}\n\n <foxy-payment-method-card\n readonlycontrols=${this.readonlySelector.zoom(cardId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(cardId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(cardId).toString()}\n data-testid=${cardId}\n group=${this.group}\n class=\"w-payment-method-card border-radius-overflow-fix rounded-t-l rounded-b-l overflow-hidden\"\n href=${this.data?._links['fx:default_payment_method'].href ?? ''}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-payment-method-card')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-payment-method-card>\n\n ${this.renderTemplateOrSlot('payment-methods:list:after')}\n </div>\n `;\n };\n\n private readonly __renderPaymentMethods = () => {\n const hiddenSelector = this.hiddenSelector.zoom('payment-methods');\n\n return html`\n ${this.renderTemplateOrSlot('payment-methods:before')}\n\n <div class=\"pt-m\" data-testid=\"payment-methods\">\n <h2 class=\"text-l font-medium mb-s\">\n <foxy-i18n\n data-testclass=\"i18n\"\n lang=${this.lang}\n key=\"payment_method_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderPaymentMethodsList()}\n </div>\n\n ${this.renderTemplateOrSlot('payment-methods:after')}\n `;\n };\n\n // #endregion\n\n // #region attributes\n\n private readonly __renderAttributesActionsCreate = () => {\n const { data, lang, ns } = this;\n\n const disabledSelector = this.disabledSelector.zoom('attributes:actions');\n const readonlySelector = this.readonlySelector.zoom('attributes:actions');\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n const isLoaded = this.in({ idle: 'snapshot' });\n const isDisabled = !isLoaded || disabledSelector.matches('create', true);\n\n return html`\n ${this.renderTemplateOrSlot('attributes:actions:create:before')}\n\n <vaadin-button\n data-testid=\"attributes:actions:create\"\n aria-label=${this.t('create').toString()}\n class=\"px-xs rounded-full\"\n theme=\"small icon\"\n ?disabled=${isDisabled}\n @click=${(evt: Event) => {\n if (data === null) return;\n const button = evt.target as HTMLButtonElement;\n const dialog = button.firstElementChild as FormDialog;\n dialog.show(button);\n }}\n >\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('create:form').toString()}\n disabledcontrols=${disabledSelector.zoom('create:form').toString()}\n hiddencontrols=${hiddenSelector.zoom('create:form').toString()}\n data-testid=\"attributes:actions:create:form\"\n parent=${data?._links['fx:attributes'].href ?? ''}\n header=\"create\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${lang}\n ns=${ns}\n .templates=${this.getNestedTemplates('attributes:actions:create:form')}\n >\n </foxy-form-dialog>\n\n <iron-icon slot=\"suffix\" icon=\"icons:add\"></iron-icon>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('attributes:actions:create:after')}\n `;\n };\n\n private readonly __renderAttributesActions = () => {\n const hiddenSelector = this.hiddenSelector.zoom('attributes:actions');\n\n return html`\n <div data-testid=\"attributes:actions\">\n ${this.renderTemplateOrSlot('attributes:actions:before')}\n ${hiddenSelector.matches('create', true) ? '' : this.__renderAttributesActionsCreate()}\n ${this.renderTemplateOrSlot('attributes:actions:after')}\n </div>\n `;\n };\n\n private readonly __renderAttributesListCard: ItemRenderer<Attribute> = ctx => {\n const handleClick = (evt: Event) => {\n if (ctx.data === null) return;\n\n const button = evt.target as HTMLButtonElement;\n const root = button.getRootNode() as Element | DocumentFragment;\n const form = root.querySelector('#attributes-list-form') as FormDialog;\n\n form.href = ctx.data._links.self.href;\n form.show(button);\n };\n\n const computedClass = classMap({\n 'snap-start text-left p-m rounded-t-l rounded-b-l flex-shrink-0 border border-contrast-10':\n true,\n 'hover-border-contrast-30 focus-outline-none focus-border-primary': ctx.data !== null,\n });\n\n return ctx.html`\n <button \n data-testclass=\"attributes:list:card\"\n class=${computedClass}\n ?disabled=${ctx.data === null}\n @click=${handleClick}\n >\n <foxy-attribute-card\n hiddencontrols=${ctx.hiddenControls.toString()}\n parent=${ctx.parent}\n group=${ctx.group}\n class=\"w-tile\"\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-attribute-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-attribute-card>\n </button>\n `;\n };\n\n private readonly __renderAttributesListPage: PageRenderer<Attributes> = ctx => {\n return html`\n <foxy-collection-page\n hiddencontrols=${ctx.hiddenControls.toString()}\n class=\"space-x-m flex\"\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=${ctx.ns}\n .item=${this.__renderAttributesListCard}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderAttributesList = () => {\n const formId = 'attributes:list:form';\n const cardId = 'attributes:list:card';\n\n return html`\n ${this.renderTemplateOrSlot('attributes:list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testclass=\"i18n\"\n data-testid=\"attributes:list:form\"\n parent=${this.data?._links['fx:attributes'].href ?? ''}\n header=\"update\"\n group=${this.group}\n form=\"foxy-attribute-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"attributes-list-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n hiddencontrols=${this.hiddenControls.zoom(cardId).toString()}\n data-testid=\"attributes:list\"\n first=${this.data?._links['fx:attributes'].href ?? ''}\n class=\"snap-x-mandatory flex items-center space-x-m overflow-auto\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderAttributesListPage}\n .templates=${this.getNestedTemplates(cardId)}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('attributes:list:after')}\n `;\n };\n\n private readonly __renderAttributes = () => {\n const { lang, ns } = this;\n const hiddenSelector = this.hiddenSelector.zoom('attributes');\n\n return html`\n ${this.renderTemplateOrSlot('attributes:before')}\n\n <section class=\"pt-m\" data-testid=\"attributes\">\n <header class=\"space-x-m flex items-center mb-s\">\n <h2 class=\"text-l font-medium\">\n <foxy-i18n ns=${ns} lang=${lang} key=\"attribute_plural\"></foxy-i18n>\n </h2>\n\n ${hiddenSelector.matches('actions', true) ? '' : this.__renderAttributesActions()}\n </header>\n\n ${hiddenSelector.matches('list', true) ? '' : this.__renderAttributesList()}\n </section>\n\n ${this.renderTemplateOrSlot('attributes:after')}\n `;\n };\n\n // #endregion\n\n // #region transactions\n\n private readonly __renderTransactions = () => {\n let transactionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const transactionsURL = new URL(this.data._links['fx:transactions'].href);\n transactionsURL.searchParams.set('zoom', 'items');\n transactionsLink = transactionsURL.toString();\n }\n\n return html`\n ${this.renderTemplateOrSlot('transactions:before')}\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"transactions\"\n spinner=\"foxy-spinner\"\n first=${transactionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n page=\"foxy-transactions-table\"\n lang=${this.lang}\n ns=${this.ns}\n .templates=${this.getNestedTemplates('transactions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('transactions:after')}\n `;\n };\n\n // #endregion\n\n // #region subscriptions\n\n private readonly __subscriptionsTableColumns: Column<Subscriptions>[] = [\n SubscriptionsTable.priceColumn,\n SubscriptionsTable.summaryColumn,\n SubscriptionsTable.statusColumn,\n {\n cell: ({ html, lang, data }) => html`\n <vaadin-button\n data-testclass=\"edit\"\n theme=\"small tertiary-inline\"\n @click=${(evt: Event) => {\n const link = new URL(data._links.self.href);\n const form = this.renderRoot.querySelector('#subscriptions-form') as FormDialog;\n const button = evt.target as ButtonElement;\n\n link.searchParams.set('zoom', 'transaction_template:items');\n form.href = link.toString();\n form.show(button);\n }}\n >\n <foxy-i18n class=\"text-m\" lang=${lang} key=\"update\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n `,\n },\n ];\n\n private readonly __renderSubscriptionsPage: PageRenderer<Subscriptions> = ({ html, ...ctx }) => {\n return html`\n <foxy-table\n data-testclass=\"subscriptions:pages:table\"\n group=${ctx.group}\n href=${ctx.href}\n lang=${ctx.lang}\n ns=\"${ctx.ns} subscriptions-table\"\n .columns=${this.__subscriptionsTableColumns}\n .templates=${ctx.templates}\n >\n </foxy-table>\n `;\n };\n\n private readonly __renderSubscriptions = () => {\n const formId = 'subscriptions:form';\n let subscriptionsLink = '';\n\n if (this.in({ idle: 'snapshot' })) {\n const subscriptionsURL = new URL(this.data._links['fx:subscriptions'].href);\n subscriptionsURL.searchParams.set('zoom', 'transaction_template:items');\n subscriptionsLink = subscriptionsURL.toString();\n }\n\n return html`\n <div data-testid=\"subscriptions\">\n ${this.renderTemplateOrSlot('subscriptions:before')}\n\n <foxy-form-dialog\n readonlycontrols=${this.readonlySelector.zoom(formId).toString()}\n disabledcontrols=${this.disabledSelector.zoom(formId).toString()}\n hiddencontrols=${this.hiddenSelector.zoom(formId).toString()}\n data-testid=${formId}\n header=\"update\"\n group=${this.group}\n form=\"foxy-subscription-form\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscriptions-form\"\n .templates=${this.getNestedTemplates(formId)}\n >\n </foxy-form-dialog>\n\n <x-group frame>\n <foxy-collection-pages\n data-testid=\"subscriptions:pages\"\n spinner=\"foxy-spinner\"\n first=${subscriptionsLink}\n class=\"divide-y divide-contrast-10 block mx-m\"\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n .page=${this.__renderSubscriptionsPage}\n .templates=${this.getNestedTemplates('subscriptions:table')}\n >\n </foxy-collection-pages>\n </x-group>\n\n ${this.renderTemplateOrSlot('subscriptions:after')}\n </div>\n `;\n };\n\n // #endregion\n\n // #region tabs\n\n private readonly __renderTabs = (tabs: Tab[]) => {\n return html`\n <div class=\"pt-m\">\n <x-tabs size=${tabs.length} ?disabled=${!this.in({ idle: 'snapshot' })}>\n ${tabs.map(\n (tab, index) => html`\n <foxy-i18n\n data-testclass=\"i18n\"\n slot=\"tab-${index}\"\n lang=${this.lang}\n key=${tab.title}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <div slot=\"panel-${index}\">${tab.content}</div>\n `\n )}\n </x-tabs>\n </div>\n `;\n };\n\n // #endregion\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const isLoaded = this.in({ idle: 'snapshot' });\n const isBusy = this.in('busy');\n const tabs: Tab[] = [];\n\n if (!hiddenSelector.matches('transactions', true)) {\n tabs.push({ title: 'transaction_plural', content: this.__renderTransactions() });\n }\n\n if (!hiddenSelector.matches('subscriptions', true)) {\n tabs.push({ title: 'subscription_plural', content: this.__renderSubscriptions() });\n }\n\n return html`\n <div class=\"relative\" data-testid=\"wrapper\" aria-busy=${isBusy} aria-live=\"polite\">\n <div\n class=${classMap({\n 'font-lumo text-body text-m leading-m space-y-s': true,\n 'opacity-50': !isLoaded,\n })}\n >\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('default', true) ? '' : this.renderTemplateOrSlot()}\n ${hiddenSelector.matches('addresses', true) ? '' : this.__renderAddresses()}\n ${hiddenSelector.matches('payment-methods', true) ? '' : this.__renderPaymentMethods()}\n ${hiddenSelector.matches('attributes', true) ? '' : this.__renderAttributes()}\n ${tabs.length === 0 ? '' : this.__renderTabs(tabs)}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': isLoaded,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -67,7 +67,7 @@ class CustomerCard extends Base {
67
67
  return html `
68
68
  <div data-testid="name">
69
69
  ${this.renderTemplateOrSlot('name:before')}
70
- <div class="font-semibold text-body truncate">${content}</div>
70
+ <div class="font-medium text-body truncate">${content}</div>
71
71
  ${this.renderTemplateOrSlot('name:after')}
72
72
  </div>
73
73
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerCard/CustomerCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst NS = 'customer-card';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Basic card displaying a customer record.\n *\n * @slot name:before\n * @slot name:after\n * @slot email:before\n * @slot email:after\n *\n * @element foxy-customer-card\n * @since 1.12.0\n */\nclass CustomerCard extends Base<Data> {\n templates: Templates = {};\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-m font-lumo text-m\"\n >\n <div\n class=${classMap({\n 'leading-xs transition-opacity': true,\n 'opacity-0': !this.data,\n })}\n >\n ${hiddenSelector.matches('name', true) ? '' : this.__renderName()}\n ${hiddenSelector.matches('email', true) ? '' : this.__renderEmail()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderName() {\n const data = this.data;\n const name = `${data?.first_name ?? ''} ${data?.last_name ?? ''}`.trim() || '–';\n const content = data ? html`${name}` : html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"name\">\n ${this.renderTemplateOrSlot('name:before')}\n <div class=\"font-semibold text-body truncate\">${content}</div>\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderEmail() {\n const data = this.data;\n const email = `${data?.email ?? ''}`.trim() || '–';\n const content = data ? html`${email}` : html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"email\">\n ${this.renderTemplateOrSlot('email:before')}\n <div class=\"text-secondary truncate text-s\">${content}</div>\n ${this.renderTemplateOrSlot('email:after')}\n </div>\n `;\n }\n}\n\nexport { CustomerCard };\n"]}
1
+ {"version":3,"file":"CustomerCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerCard/CustomerCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst NS = 'customer-card';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Basic card displaying a customer record.\n *\n * @slot name:before\n * @slot name:after\n * @slot email:before\n * @slot email:after\n *\n * @element foxy-customer-card\n * @since 1.12.0\n */\nclass CustomerCard extends Base<Data> {\n templates: Templates = {};\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-m font-lumo text-m\"\n >\n <div\n class=${classMap({\n 'leading-xs transition-opacity': true,\n 'opacity-0': !this.data,\n })}\n >\n ${hiddenSelector.matches('name', true) ? '' : this.__renderName()}\n ${hiddenSelector.matches('email', true) ? '' : this.__renderEmail()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderName() {\n const data = this.data;\n const name = `${data?.first_name ?? ''} ${data?.last_name ?? ''}`.trim() || '–';\n const content = data ? html`${name}` : html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"name\">\n ${this.renderTemplateOrSlot('name:before')}\n <div class=\"font-medium text-body truncate\">${content}</div>\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderEmail() {\n const data = this.data;\n const email = `${data?.email ?? ''}`.trim() || '–';\n const content = data ? html`${email}` : html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"email\">\n ${this.renderTemplateOrSlot('email:before')}\n <div class=\"text-secondary truncate text-s\">${content}</div>\n ${this.renderTemplateOrSlot('email:after')}\n </div>\n `;\n }\n}\n\nexport { CustomerCard };\n"]}
@@ -128,14 +128,14 @@ export class InternalCustomerPortalLoggedInView extends Base {
128
128
  render() {
129
129
  var _a, _b;
130
130
  const hiddenSelector = this.hiddenSelector.zoom('customer');
131
- const customerHiddenControls = new BooleanSelector([
132
- 'attributes',
133
- 'transactions',
134
- 'subscriptions',
135
- 'addresses:actions:create',
136
- 'header:actions:edit:form:delete',
137
- hiddenSelector.toString(),
138
- ].join(' ')).toString();
131
+ const customerHiddenControls = new BooleanSelector(`
132
+ attributes
133
+ transactions
134
+ subscriptions
135
+ addresses:actions:create
136
+ header:actions:edit:form:delete
137
+ ${hiddenSelector.toString()}
138
+ `).toString();
139
139
  const templates = this.getNestedTemplates('customer');
140
140
  const originalHeaderActionsAfterTemplate = templates['header:actions:after'];
141
141
  const originalTimestampsAfterTemplate = templates['header:actions:edit:form:timestamps:after'];
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalLoggedInView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedInView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAY,wCAAqC;AAC3E,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,iCAA8B;AAG5C,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAGlE,OAAO,EAAE,eAAe,EAAY,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AAEjE,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAGlF,MAAM,OAAO,kCAAmC,SAAQ,IAAU;IAAlE;;QAUE,cAAS,GAAc,EAAE,CAAC;QAE1B,aAAQ,GAAG,EAAE,CAAC;QAEd,oBAAe,GAA6B,MAAM,CAAC;QAEnD,gCAA2B,GAA0B,IAAI,CAAC;QAEzC,iCAA4B,GAAG,GAAG,EAAE;;YACnD,MAAM,KAAK,GAAG,kCAAkC,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YAEnC,MAAM,UAAU,GACd,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpC,QAAC,IAAI,CAAC,iBAAiB,0CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAC;gBACjD,KAAK,KAAK,MAAM,CAAC;YAEnB,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;gBAC7B,IAAI;oBACF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;iBAC/B;gBAAC,WAAM;oBACN,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,GAAG,EAAE;wBACjD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;wBAC9B,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;oBAC1C,CAAC,EAAE,IAAI,CAAC,CAAC;iBACV;YACH,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG;gBACZ,eAAe,EAAE,MAAM;gBACvB,SAAS,EAAE,sBAAsB;gBACjC,SAAS,EAAE,MAAM;gBACjB,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aAC7C,CAAC;YAEF,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;;;;uBAI/B,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;kBAClC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;;sBAE7D,UAAU;mBACb,WAAW;;YAElB,KAAK,KAAK,MAAM;gBAChB,CAAC,CAAC,IAAI,CAAA,kDAAkD;gBACxD,CAAC,CAAC,IAAI,CAAA;;;0BAGQ,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;yBAEpC,IAAI,CAAC,IAAI;uBACX;oBACH,IAAI,CAAC,EAAE;gCACP,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,0CAAE,SAAS,mCAAI,EAAE;gCACpD,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;iBACpD,CAAC,IAAI,CAAC,GAAG,CAAC;;;eAGd;;;UAGL,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,QAAQ,CAAC;;KAEhD,CAAC;QACJ,CAAC,CAAC;QAEe,0BAAqB,GAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC1E,MAAM,KAAK,GAAG,wBAAwB,CAAC;YAEvC,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;;;2BAGzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;2BAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;yBAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;gBACnD,IAAI,CAAC,KAAK;eACX,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,EAAE;qBACC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAC/B,IAAI,CAAC,IAAI;oBACT,IAAI,CAAC,IAAI;;;;QAIrB,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,QAAQ,CAAC;KAC9C,CAAC;QACJ,CAAC,CAAC;QAEe,yBAAoB,GAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACzE,MAAM,KAAK,GAAG,uBAAuB,CAAC;YAEtC,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;;;2BAGzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;2BAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;yBAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;gBACnD,IAAI,CAAC,KAAK;eACX,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,EAAE;qBACC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAC/B,IAAI,CAAC,IAAI;;;;QAIrB,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,QAAQ,CAAC;KAC9C,CAAC;QACJ,CAAC,CAAC;IAwGJ,CAAC;IAtOC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC1B,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YACrC,2BAA2B,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAClD,CAAC;IACJ,CAAC;IAyHD,MAAM;;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,sBAAsB,GAAG,IAAI,eAAe,CAChD;YACE,YAAY;YACZ,cAAc;YACd,eAAe;YACf,0BAA0B;YAC1B,iCAAiC;YACjC,cAAc,CAAC,QAAQ,EAAE;SAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC,QAAQ,EAAE,CAAC;QAEb,MAAM,SAAS,GAAsB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,kCAAkC,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC7E,MAAM,+BAA+B,GAAG,SAAS,CAAC,2CAA2C,CAAC,CAAC;QAC/F,MAAM,uBAAuB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAErD,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;YAChF,OAAO,IAAI,CAAA;;YAEL,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAC1D,kCAAkC,aAAlC,kCAAkC,uBAAlC,kCAAkC,CAAG,IAAI,EAAE,IAAI,CAAC;;OAErD,CAAC;QACJ,CAAC,CAAC;QAEF,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAErD,OAAO,IAAI,CAAA;;;;;;;;;UASP,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAG,IAAI,EAAE,IAAI,CAAC;;;YAGlF,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC;YACpF,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC;;OAEvF,CAAC;QACJ,CAAC,CAAC;QAEF,SAAS,CAAC,2CAA2C,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;;YACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC;YAEhC,OAAO,IAAI,CAAA;UACP,+BAA+B,aAA/B,+BAA+B,uBAA/B,+BAA+B,CAAG,IAAI,EAAE,IAAI,CAAC;UAC7C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAA;gBACA,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;;;2BAGjC,IAAI,CAAC,IAAI;;;wBAGZ,YAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,mCAAI,EAAE;uBACvB,IAAI,CAAC,IAAI;qBACX,IAAI,CAAC,EAAE;4BACA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;;;;gBAIzE,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,QAAQ,CAAC;aAC9C;OACN,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,IAAI,CAAA;;2BAEY,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;2BACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;yBACnD,sBAAsB;;gBAE/B,IAAI,CAAC,KAAK;eACX,IAAI,CAAC,QAAQ;eACb,IAAI,CAAC,IAAI;cACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,0CAAE,SAAS,mCAAI,EAAE;;qBAExD,SAAS;kBACZ,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;KAGvC,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,2BAA2B;YAAE,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACvF,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAW,WAAW,CAAC,CAAC;IAC9D,CAAC;CACF","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';\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 loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\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 >\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 { 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';\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 loggingOutStateResetTimeout: { attribute: false },\n };\n }\n\n templates: Templates = {};\n\n customer = '';\n\n loggingOutState: 'idle' | 'busy' | 'fail' = 'idle';\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 >\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 attributes\n transactions\n subscriptions\n addresses:actions:create\n header:actions:edit:form:delete\n ${hiddenSelector.toString()}\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"]}
@@ -20,7 +20,7 @@ export class InternalCustomerPortalLoggedOutView extends Base {
20
20
  ${this.renderTemplateOrSlot('access-recovery:header:before')}
21
21
 
22
22
  <foxy-i18n
23
- class="text-xxl font-bold ${isBusy ? 'text-disabled' : 'text-body'}"
23
+ class="text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}"
24
24
  lang=${lang}
25
25
  key="recover_access"
26
26
  ns="${ns} ${(_b = (_a = customElements.get('foxy-access-recovery-form')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
@@ -126,7 +126,7 @@ export class InternalCustomerPortalLoggedOutView extends Base {
126
126
  ${this.renderTemplateOrSlot('sign-in:header:before')}
127
127
 
128
128
  <foxy-i18n
129
- class="text-xxl font-bold ${isBusy ? 'text-disabled' : 'text-body'}"
129
+ class="text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}"
130
130
  lang=${lang}
131
131
  key="sign_in"
132
132
  ns="${ns} ${(_b = (_a = customElements.get('foxy-sign-in-form')) === null || _a === void 0 ? void 0 : _a.defaultNS) !== null && _b !== void 0 ? _b : ''}"
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalLoggedOutView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CSSResultArray,\n LitElement,\n PropertyDeclarations,\n TemplateResult,\n css,\n html,\n} from 'lit-element';\n\nimport { AccessRecoveryForm } from '..';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { SignInForm } from '../SignInForm';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(InferrableMixin(LitElement))));\n\nexport class InternalCustomerPortalLoggedOutView extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n group: { type: String },\n page: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-20rem {\n max-width: 20rem;\n }\n `,\n ];\n }\n\n group = '';\n\n page: 'sign-in' | 'access-recovery' = 'sign-in';\n\n private readonly __renderAccessRecoveryHeader = () => {\n const { lang, ns } = this;\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-m font-lumo\" data-testid=\"access-recovery:header\">\n ${this.renderTemplateOrSlot('access-recovery:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-bold ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"recover_access\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"recover_access_hint\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('access-recovery:header:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryBack = () => {\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const disabledSelector = this.disabledSelector.zoom('access-recovery');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('access-recovery:back:before')}\n\n <vaadin-button\n data-testid=\"access-recovery:back\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"back\"\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('access-recovery:back:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryForm = () => {\n const scope = 'access-recovery:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-access-recovery-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"access-recovery:form\"\n parent=\"foxy://customer-api/recover\"\n group=${this.group}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n id=\"access-recovery-form\"\n .templates=${this.getNestedTemplates(scope)}\n @update=${() => this.requestUpdate()}\n >\n </foxy-access-recovery-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderAccessRecovery = () => {\n const scope = 'access-recovery';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"access-recovery\">\n <div class=\"m-auto max-w-20rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-l\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderAccessRecoveryHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderAccessRecoveryForm()}\n ${hiddenSelector.matches('back', true) ? '' : this.__renderAccessRecoveryBack()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignInHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-in-form';\n const form = this.renderRoot.querySelector(formId) as SignInForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-m font-lumo\" data-testid=\"sign-in:header\">\n ${this.renderTemplateOrSlot('sign-in:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-bold ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_in\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_in_hint\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-in:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInRecover = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:recover:before')}\n\n <vaadin-button\n data-testid=\"sign-in:recover\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('recover', true)}\n @click=${() => (this.page = 'access-recovery')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"recover_access\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:recover:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInForm = () => {\n const scope = 'sign-in:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-sign-in-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"sign-in:form\"\n parent=\"foxy://customer-api/session\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-in-form\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates('sign-in:form')}\n @update=${() => this.requestUpdate()}\n >\n </foxy-sign-in-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignIn = () => {\n const scope = 'sign-in';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-in\">\n <div class=\"m-auto max-w-20rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-l\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}\n ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n render(): TemplateResult {\n const { page, hiddenSelector } = this;\n\n if (page === 'access-recovery' && !hiddenSelector.matches('access-recovery', true)) {\n return this.__renderAccessRecovery();\n }\n\n if (page === 'sign-in' && !hiddenSelector.matches('sign-in', true)) {\n return this.__renderSignIn();\n }\n\n return html``;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalLoggedOutView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CSSResultArray,\n LitElement,\n PropertyDeclarations,\n TemplateResult,\n css,\n html,\n} from 'lit-element';\n\nimport { AccessRecoveryForm } from '..';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { SignInForm } from '../SignInForm';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(InferrableMixin(LitElement))));\n\nexport class InternalCustomerPortalLoggedOutView extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n group: { type: String },\n page: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-20rem {\n max-width: 20rem;\n }\n `,\n ];\n }\n\n group = '';\n\n page: 'sign-in' | 'access-recovery' = 'sign-in';\n\n private readonly __renderAccessRecoveryHeader = () => {\n const { lang, ns } = this;\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-m font-lumo\" data-testid=\"access-recovery:header\">\n ${this.renderTemplateOrSlot('access-recovery:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"recover_access\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"recover_access_hint\"\n ns=\"${ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('access-recovery:header:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryBack = () => {\n const formId = '#access-recovery-form';\n const form = this.renderRoot.querySelector(formId) as AccessRecoveryForm | null;\n const disabledSelector = this.disabledSelector.zoom('access-recovery');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('access-recovery:back:before')}\n\n <vaadin-button\n data-testid=\"access-recovery:back\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('back', true)}\n @click=${() => (this.page = 'sign-in')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"back\"\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('access-recovery:back:after')}\n </div>\n `;\n };\n\n private readonly __renderAccessRecoveryForm = () => {\n const scope = 'access-recovery:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-access-recovery-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"access-recovery:form\"\n parent=\"foxy://customer-api/recover\"\n group=${this.group}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-access-recovery-form')?.defaultNS ?? ''}\"\n id=\"access-recovery-form\"\n .templates=${this.getNestedTemplates(scope)}\n @update=${() => this.requestUpdate()}\n >\n </foxy-access-recovery-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderAccessRecovery = () => {\n const scope = 'access-recovery';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"access-recovery\">\n <div class=\"m-auto max-w-20rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-l\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderAccessRecoveryHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderAccessRecoveryForm()}\n ${hiddenSelector.matches('back', true) ? '' : this.__renderAccessRecoveryBack()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n private readonly __renderSignInHeader = () => {\n const { lang, ns } = this;\n const formId = '#sign-in-form';\n const form = this.renderRoot.querySelector(formId) as SignInForm | null;\n const isBusy = !!form?.in('busy');\n\n return html`\n <div class=\"flex flex-col leading-m font-lumo\" data-testid=\"sign-in:header\">\n ${this.renderTemplateOrSlot('sign-in:header:before')}\n\n <foxy-i18n\n class=\"text-xxl font-medium ${isBusy ? 'text-disabled' : 'text-body'}\"\n lang=${lang}\n key=\"sign_in\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"text-l ${isBusy ? 'text-disabled' : 'text-secondary'}\"\n lang=${lang}\n key=\"sign_in_hint\"\n ns=\"${ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('sign-in:header:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInRecover = () => {\n const form = this.renderRoot.querySelector<AccessRecoveryForm>('#sign-in-form');\n const disabledSelector = this.disabledSelector.zoom('sign-in');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('sign-in:recover:before')}\n\n <vaadin-button\n data-testid=\"sign-in:recover\"\n class=\"w-full\"\n theme=\"tertiary\"\n ?disabled=${!!form?.in('busy') || disabledSelector.matches('recover', true)}\n @click=${() => (this.page = 'access-recovery')}\n >\n <foxy-i18n\n lang=${this.lang}\n key=\"recover_access\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n >\n </foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('sign-in:recover:after')}\n </div>\n `;\n };\n\n private readonly __renderSignInForm = () => {\n const scope = 'sign-in:form';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <foxy-sign-in-form\n readonlycontrols=${this.readonlySelector.zoom(scope).toString()}\n disabledcontrols=${this.disabledSelector.zoom(scope).toString()}\n hiddencontrols=${hiddenSelector.toString()}\n data-testid=\"sign-in:form\"\n parent=\"foxy://customer-api/session\"\n group=${this.group}\n lang=${this.lang}\n id=\"sign-in-form\"\n ns=\"${this.ns} ${customElements.get('foxy-sign-in-form')?.defaultNS ?? ''}\"\n .templates=${this.getNestedTemplates('sign-in:form')}\n @update=${() => this.requestUpdate()}\n >\n </foxy-sign-in-form>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n };\n\n private readonly __renderSignIn = () => {\n const scope = 'sign-in';\n const hiddenSelector = this.hiddenSelector.zoom(scope);\n\n return html`\n <div class=\"h-full flex\" data-testid=\"sign-in\">\n <div class=\"m-auto max-w-20rem flex-1\">\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <div class=\"space-y-l\">\n ${hiddenSelector.matches('header', true) ? '' : this.__renderSignInHeader()}\n <div class=\"space-y-s\">\n ${hiddenSelector.matches('form', true) ? '' : this.__renderSignInForm()}\n ${hiddenSelector.matches('recover', true) ? '' : this.__renderSignInRecover()}\n </div>\n </div>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n </div>\n `;\n };\n\n render(): TemplateResult {\n const { page, hiddenSelector } = this;\n\n if (page === 'access-recovery' && !hiddenSelector.matches('access-recovery', true)) {\n return this.__renderAccessRecovery();\n }\n\n if (page === 'sign-in' && !hiddenSelector.matches('sign-in', true)) {\n return this.__renderSignIn();\n }\n\n return html``;\n }\n}\n"]}
@@ -197,7 +197,7 @@ export class InternalCustomerPortalSubscriptions extends Base {
197
197
  ${this.renderTemplateOrSlot('header:before')}
198
198
 
199
199
  <foxy-i18n
200
- class="block text-l font-semibold"
200
+ class="block text-l font-medium"
201
201
  lang=${this.lang}
202
202
  key="subscription_plural"
203
203
  ns=${this.ns}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalSubscriptions.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConfigurableMixin, Renderer } from '../../../mixins/configurable';\nimport { Graph, Rels } from '@foxy.io/sdk/customer';\nimport { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { FormRendererContext } from '../FormDialog/types';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { BooleanSelector, Resource } from '@foxy.io/sdk/core';\nimport { SubscriptionForm } from '../SubscriptionForm/SubscriptionForm';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport class InternalCustomerPortalSubscriptions extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n settings: { attribute: false },\n customer: { attribute: false },\n group: { type: String },\n };\n }\n\n settings: Resource<Rels.CustomerPortalSettings> | null = null;\n\n customer: Resource<Graph> | null = null;\n\n group = '';\n\n private readonly __renderFormHeaderActionsUpdate: Renderer<SubscriptionForm> = (html, host) => {\n const hasEnded = !!host.data?.end_date && new Date(host.data.end_date).getTime() <= Date.now();\n let billingLink = '';\n\n if (!hasEnded && host.in({ idle: 'snapshot' })) {\n const link = host.data._links['fx:sub_token_url'].href;\n const updateBillingURL = new URL(link);\n\n updateBillingURL.searchParams.set('cart', 'checkout');\n updateBillingURL.searchParams.set('sub_restart', 'auto');\n billingLink = updateBillingURL.toString();\n }\n\n return html`\n ${host.renderTemplateOrSlot('header:actions:update:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"header:actions:update\"\n href=${billingLink}\n icon=\"icons:credit-card\"\n ?disabled=${hasEnded || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"update_billing\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('header:actions:update:after')}\n `;\n };\n\n private readonly __renderFormHeaderActionsEnd: Renderer<SubscriptionForm> = (html, host) => {\n const hasEndDate = !!host.data?.end_date;\n let cancelLink = '';\n\n if (!hasEndDate && host.in({ idle: 'snapshot' })) {\n const cancelURL = new URL(host.data._links['fx:sub_token_url'].href);\n\n cancelURL.searchParams.set('sub_cancel', 'true');\n cancelLink = cancelURL.toString();\n }\n\n return html`\n ${host.renderTemplateOrSlot('header:actions:end:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"header:actions:end\"\n href=${cancelLink}\n icon=\"icons:block\"\n ?disabled=${hasEndDate || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"end_subscription\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('header:actions:end:after')}\n `;\n };\n\n private readonly __renderFormHeaderActions: Renderer<SubscriptionForm> = (html, host) => {\n const isUpdateActionHidden = host.hiddenSelector.matches('header:actions:update');\n const isEndActionHidden = host.hiddenSelector.matches('header:actions:end');\n\n return html`\n <style>\n main {\n display: flex;\n justify-content: space-between;\n padding-top: var(--lumo-space-xs);\n margin-top: var(--lumo-space-s);\n border-top: 1px solid var(--lumo-contrast-10pct);\n color: var(--lumo-secondary-color);\n }\n </style>\n\n ${host.renderTemplateOrSlot('header:actions:before')}\n\n <main data-testid=\"header:actions\">\n ${isUpdateActionHidden ? '' : this.__renderFormHeaderActionsUpdate(html, host)}\n ${isEndActionHidden ? '' : this.__renderFormHeaderActionsEnd(html, host)}\n </main>\n\n ${host.renderTemplateOrSlot('header:actions:after')}\n `;\n };\n\n private readonly __renderFormItemsActionsUpdate: Renderer<SubscriptionForm> = (html, host) => {\n const itemsLink = host.data?._links['fx:sub_modification_url']?.href ?? '';\n const hasEnded = !!host.data?.end_date && new Date(host.data.end_date).getTime() <= Date.now();\n\n return html`\n ${host.renderTemplateOrSlot('items:actions:update:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"items:actions:update\"\n class=\"text-primary\"\n href=${itemsLink}\n ?disabled=${hasEnded || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"update_items\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('items:actions:update:after')}\n `;\n };\n\n private readonly __renderForm = (ctx: FormRendererContext) => {\n const templates = { ...ctx.dialog.templates };\n const originalHeaderAfterRenderer = templates['header:after'];\n const originalItemsActionsAfterRenderer = templates['items:actions:after'];\n\n templates['header:after'] = (html, host) => {\n const actionsHidden = host.hiddenSelector.matches('header:actions', true);\n return html`\n ${actionsHidden ? '' : this.__renderFormHeaderActions(html, host)}\n ${originalHeaderAfterRenderer?.(html, host)}\n `;\n };\n\n templates['items:actions:after'] = (html, host) => {\n const hasUpdateLink = !!host.data?._links['fx:sub_modification_url'];\n const isUpdateHidden = host.hiddenSelector.matches('items:actions:update', true);\n const isUpdateRendered = hasUpdateLink && !isUpdateHidden;\n\n return html`\n ${isUpdateRendered ? this.__renderFormItemsActionsUpdate(html, host) : ''}\n ${originalItemsActionsAfterRenderer?.(html, host)}\n `;\n };\n\n return html`\n <foxy-subscription-form\n disabledcontrols=${ctx.dialog.disabledControls.toString()}\n readonlycontrols=${ctx.dialog.readonlyControls.toString()}\n hiddencontrols=${new BooleanSelector(\n `attributes timestamps start-date past-due-amount ${ctx.dialog.hiddenSelector}`\n )}\n settings=${JSON.stringify(this.settings)}\n parent=${ctx.dialog.parent}\n group=${ctx.dialog.group}\n lang=${ctx.dialog.lang}\n href=${ctx.dialog.href}\n ns=\"${ctx.dialog.ns} ${customElements.get('foxy-subscription-form')?.defaultNS ?? ''}\"\n id=\"form\"\n .templates=${templates}\n @update=${ctx.handleUpdate}\n @fetch=${ctx.handleFetch}\n >\n </foxy-subscription-form>\n `;\n };\n\n private readonly __renderPageItem: ItemRenderer = ({ html, ...ctx }) => {\n return html`\n <button\n class=${classMap({\n 'block w-full border border-contrast-10 p-m rounded-t-l rounded-b-l': true,\n 'focus-outline-none focus-border-primary': true,\n 'hover-border-contrast-30': ctx.data !== null,\n })}\n ?disabled=${ctx.data === null}\n @click=${(evt: Event) => {\n const url = new URL(ctx.href);\n url.searchParams.set('zoom', 'last_transaction,transaction_template:items');\n this.__subscriptionDialog.href = url.toString();\n this.__subscriptionDialog.show(evt.currentTarget as HTMLButtonElement);\n }}\n >\n <foxy-subscription-card\n hiddencontrols=\"email\"\n parent=${ctx.parent}\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-subscription-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-subscription-card>\n </button>\n `;\n };\n\n private readonly __renderPage: PageRenderer<any> = ({ html, ...ctx }) => {\n return html`\n <foxy-collection-page\n ns=${ctx.ns}\n href=${ctx.href}\n lang=${ctx.lang}\n group=${ctx.group}\n class=\"space-y-m\"\n .item=${this.__renderPageItem}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderHeader = () => {\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <foxy-i18n\n class=\"block text-l font-semibold\"\n lang=${this.lang}\n key=\"subscription_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n private readonly __renderList = () => {\n const disabledSelector = this.disabledSelector.zoom('list');\n const readonlySelector = this.readonlySelector.zoom('list');\n const hiddenSelector = this.hiddenSelector.zoom('list');\n const extendedHiddenControlsArray = [hiddenSelector.zoom('form').toString(), 'end-date'];\n\n return html`\n ${this.renderTemplateOrSlot('list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('form').toString()}\n disabledcontrols=${disabledSelector.zoom('form').toString()}\n hiddencontrols=${extendedHiddenControlsArray.join(' ').trim()}\n header=\"update\"\n parent=${ifDefined(this.customer?._links['fx:subscriptions'].href)}\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscription-dialog\"\n .form=${this.__renderForm}\n .templates=${this.getNestedTemplates('list:form')}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n class=\"block space-y-m\"\n first=${this.__activeSubscriptionsLink}\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n manual\n .page=${this.__renderPage}\n .templates=${this.getNestedTemplates('list:card')}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('list:after')}\n `;\n };\n\n render(): TemplateResult {\n return html`\n <div class=\"space-y-s\" data-testid=\"subscriptions\">\n ${this.hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${this.hiddenSelector.matches('list', true) ? '' : this.__renderList()}\n </div>\n `;\n }\n\n private get __subscriptionDialog() {\n return this.renderRoot.querySelector('#subscription-dialog') as FormDialog;\n }\n\n private get __activeSubscriptionsLink() {\n try {\n const url = new URL(this.customer!._links['fx:subscriptions'].href);\n url.searchParams.set('zoom', 'last_transaction,transaction_template:items');\n return url.toString();\n } catch {\n return '';\n }\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalSubscriptions.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConfigurableMixin, Renderer } from '../../../mixins/configurable';\nimport { Graph, Rels } from '@foxy.io/sdk/customer';\nimport { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { FormDialog } from '../FormDialog/FormDialog';\nimport { FormRendererContext } from '../FormDialog/types';\nimport { ItemRenderer } from '../CollectionPage/types';\nimport { PageRenderer } from '../CollectionPages/types';\nimport { BooleanSelector, Resource } from '@foxy.io/sdk/core';\nimport { SubscriptionForm } from '../SubscriptionForm/SubscriptionForm';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport class InternalCustomerPortalSubscriptions extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n settings: { attribute: false },\n customer: { attribute: false },\n group: { type: String },\n };\n }\n\n settings: Resource<Rels.CustomerPortalSettings> | null = null;\n\n customer: Resource<Graph> | null = null;\n\n group = '';\n\n private readonly __renderFormHeaderActionsUpdate: Renderer<SubscriptionForm> = (html, host) => {\n const hasEnded = !!host.data?.end_date && new Date(host.data.end_date).getTime() <= Date.now();\n let billingLink = '';\n\n if (!hasEnded && host.in({ idle: 'snapshot' })) {\n const link = host.data._links['fx:sub_token_url'].href;\n const updateBillingURL = new URL(link);\n\n updateBillingURL.searchParams.set('cart', 'checkout');\n updateBillingURL.searchParams.set('sub_restart', 'auto');\n billingLink = updateBillingURL.toString();\n }\n\n return html`\n ${host.renderTemplateOrSlot('header:actions:update:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"header:actions:update\"\n href=${billingLink}\n icon=\"icons:credit-card\"\n ?disabled=${hasEnded || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"update_billing\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('header:actions:update:after')}\n `;\n };\n\n private readonly __renderFormHeaderActionsEnd: Renderer<SubscriptionForm> = (html, host) => {\n const hasEndDate = !!host.data?.end_date;\n let cancelLink = '';\n\n if (!hasEndDate && host.in({ idle: 'snapshot' })) {\n const cancelURL = new URL(host.data._links['fx:sub_token_url'].href);\n\n cancelURL.searchParams.set('sub_cancel', 'true');\n cancelLink = cancelURL.toString();\n }\n\n return html`\n ${host.renderTemplateOrSlot('header:actions:end:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"header:actions:end\"\n href=${cancelLink}\n icon=\"icons:block\"\n ?disabled=${hasEndDate || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"end_subscription\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('header:actions:end:after')}\n `;\n };\n\n private readonly __renderFormHeaderActions: Renderer<SubscriptionForm> = (html, host) => {\n const isUpdateActionHidden = host.hiddenSelector.matches('header:actions:update');\n const isEndActionHidden = host.hiddenSelector.matches('header:actions:end');\n\n return html`\n <style>\n main {\n display: flex;\n justify-content: space-between;\n padding-top: var(--lumo-space-xs);\n margin-top: var(--lumo-space-s);\n border-top: 1px solid var(--lumo-contrast-10pct);\n color: var(--lumo-secondary-color);\n }\n </style>\n\n ${host.renderTemplateOrSlot('header:actions:before')}\n\n <main data-testid=\"header:actions\">\n ${isUpdateActionHidden ? '' : this.__renderFormHeaderActionsUpdate(html, host)}\n ${isEndActionHidden ? '' : this.__renderFormHeaderActionsEnd(html, host)}\n </main>\n\n ${host.renderTemplateOrSlot('header:actions:after')}\n `;\n };\n\n private readonly __renderFormItemsActionsUpdate: Renderer<SubscriptionForm> = (html, host) => {\n const itemsLink = host.data?._links['fx:sub_modification_url']?.href ?? '';\n const hasEnded = !!host.data?.end_date && new Date(host.data.end_date).getTime() <= Date.now();\n\n return html`\n ${host.renderTemplateOrSlot('items:actions:update:before')}\n\n <foxy-internal-customer-portal-link\n data-testid=\"items:actions:update\"\n class=\"text-primary\"\n href=${itemsLink}\n ?disabled=${hasEnded || !host.in('idle')}\n >\n <foxy-i18n lang=${host.lang} key=\"update_items\" ns=${host.ns}></foxy-i18n>\n </foxy-internal-customer-portal-link>\n\n ${host.renderTemplateOrSlot('items:actions:update:after')}\n `;\n };\n\n private readonly __renderForm = (ctx: FormRendererContext) => {\n const templates = { ...ctx.dialog.templates };\n const originalHeaderAfterRenderer = templates['header:after'];\n const originalItemsActionsAfterRenderer = templates['items:actions:after'];\n\n templates['header:after'] = (html, host) => {\n const actionsHidden = host.hiddenSelector.matches('header:actions', true);\n return html`\n ${actionsHidden ? '' : this.__renderFormHeaderActions(html, host)}\n ${originalHeaderAfterRenderer?.(html, host)}\n `;\n };\n\n templates['items:actions:after'] = (html, host) => {\n const hasUpdateLink = !!host.data?._links['fx:sub_modification_url'];\n const isUpdateHidden = host.hiddenSelector.matches('items:actions:update', true);\n const isUpdateRendered = hasUpdateLink && !isUpdateHidden;\n\n return html`\n ${isUpdateRendered ? this.__renderFormItemsActionsUpdate(html, host) : ''}\n ${originalItemsActionsAfterRenderer?.(html, host)}\n `;\n };\n\n return html`\n <foxy-subscription-form\n disabledcontrols=${ctx.dialog.disabledControls.toString()}\n readonlycontrols=${ctx.dialog.readonlyControls.toString()}\n hiddencontrols=${new BooleanSelector(\n `attributes timestamps start-date past-due-amount ${ctx.dialog.hiddenSelector}`\n )}\n settings=${JSON.stringify(this.settings)}\n parent=${ctx.dialog.parent}\n group=${ctx.dialog.group}\n lang=${ctx.dialog.lang}\n href=${ctx.dialog.href}\n ns=\"${ctx.dialog.ns} ${customElements.get('foxy-subscription-form')?.defaultNS ?? ''}\"\n id=\"form\"\n .templates=${templates}\n @update=${ctx.handleUpdate}\n @fetch=${ctx.handleFetch}\n >\n </foxy-subscription-form>\n `;\n };\n\n private readonly __renderPageItem: ItemRenderer = ({ html, ...ctx }) => {\n return html`\n <button\n class=${classMap({\n 'block w-full border border-contrast-10 p-m rounded-t-l rounded-b-l': true,\n 'focus-outline-none focus-border-primary': true,\n 'hover-border-contrast-30': ctx.data !== null,\n })}\n ?disabled=${ctx.data === null}\n @click=${(evt: Event) => {\n const url = new URL(ctx.href);\n url.searchParams.set('zoom', 'last_transaction,transaction_template:items');\n this.__subscriptionDialog.href = url.toString();\n this.__subscriptionDialog.show(evt.currentTarget as HTMLButtonElement);\n }}\n >\n <foxy-subscription-card\n hiddencontrols=\"email\"\n parent=${ctx.parent}\n group=${ctx.group}\n lang=${ctx.lang}\n href=${ctx.href}\n ns=\"${ctx.ns} ${customElements.get('foxy-subscription-card')?.defaultNS ?? ''}\"\n .templates=${ctx.templates}\n >\n </foxy-subscription-card>\n </button>\n `;\n };\n\n private readonly __renderPage: PageRenderer<any> = ({ html, ...ctx }) => {\n return html`\n <foxy-collection-page\n ns=${ctx.ns}\n href=${ctx.href}\n lang=${ctx.lang}\n group=${ctx.group}\n class=\"space-y-m\"\n .item=${this.__renderPageItem}\n .templates=${ctx.templates}\n >\n </foxy-collection-page>\n `;\n };\n\n private readonly __renderHeader = () => {\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <foxy-i18n\n class=\"block text-l font-medium\"\n lang=${this.lang}\n key=\"subscription_plural\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n };\n\n private readonly __renderList = () => {\n const disabledSelector = this.disabledSelector.zoom('list');\n const readonlySelector = this.readonlySelector.zoom('list');\n const hiddenSelector = this.hiddenSelector.zoom('list');\n const extendedHiddenControlsArray = [hiddenSelector.zoom('form').toString(), 'end-date'];\n\n return html`\n ${this.renderTemplateOrSlot('list:before')}\n\n <foxy-form-dialog\n readonlycontrols=${readonlySelector.zoom('form').toString()}\n disabledcontrols=${disabledSelector.zoom('form').toString()}\n hiddencontrols=${extendedHiddenControlsArray.join(' ').trim()}\n header=\"update\"\n parent=${ifDefined(this.customer?._links['fx:subscriptions'].href)}\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n id=\"subscription-dialog\"\n .form=${this.__renderForm}\n .templates=${this.getNestedTemplates('list:form')}\n >\n </foxy-form-dialog>\n\n <foxy-collection-pages\n class=\"block space-y-m\"\n first=${this.__activeSubscriptionsLink}\n group=${this.group}\n lang=${this.lang}\n ns=${this.ns}\n manual\n .page=${this.__renderPage}\n .templates=${this.getNestedTemplates('list:card')}\n >\n </foxy-collection-pages>\n\n ${this.renderTemplateOrSlot('list:after')}\n `;\n };\n\n render(): TemplateResult {\n return html`\n <div class=\"space-y-s\" data-testid=\"subscriptions\">\n ${this.hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${this.hiddenSelector.matches('list', true) ? '' : this.__renderList()}\n </div>\n `;\n }\n\n private get __subscriptionDialog() {\n return this.renderRoot.querySelector('#subscription-dialog') as FormDialog;\n }\n\n private get __activeSubscriptionsLink() {\n try {\n const url = new URL(this.customer!._links['fx:subscriptions'].href);\n url.searchParams.set('zoom', 'last_transaction,transaction_template:items');\n return url.toString();\n } catch {\n return '';\n }\n }\n}\n"]}