@foxy.io/elements 1.39.0-beta.3 → 1.39.0-beta.5

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 (63) hide show
  1. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  2. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  3. package/dist/cdn/foxy-cancellation-form.js +1 -1
  4. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  5. package/dist/cdn/foxy-customer-portal.js +10 -14
  6. package/dist/cdn/foxy-customer.js +1 -1
  7. package/dist/cdn/foxy-donation.js +1 -1
  8. package/dist/cdn/foxy-error-entry-card.js +1 -1
  9. package/dist/cdn/foxy-item-card.js +1 -1
  10. package/dist/cdn/foxy-report-form.js +1 -1
  11. package/dist/cdn/foxy-store-form.js +1 -1
  12. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  13. package/dist/cdn/foxy-subscription-card.js +1 -1
  14. package/dist/cdn/foxy-subscription-form.js +1 -1
  15. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  16. package/dist/cdn/{shared-56d70cc2.js → shared-230dee11.js} +5 -5
  17. package/dist/cdn/shared-84eb85dd.js +1 -0
  18. package/dist/cdn/shared-ada5e9f5.js +1 -0
  19. package/dist/cdn/translations/customer/en.json +18 -10
  20. package/dist/cdn/translations/customer-portal/de.json +33 -13
  21. package/dist/cdn/translations/customer-portal/en.json +24 -8
  22. package/dist/cdn/translations/customer-portal/es.json +32 -12
  23. package/dist/cdn/translations/customer-portal/fr.json +33 -13
  24. package/dist/cdn/translations/customer-portal/nl.json +33 -13
  25. package/dist/cdn/translations/customer-portal/pl.json +33 -13
  26. package/dist/cdn/translations/customer-portal/sv.json +33 -13
  27. package/dist/cdn/translations/customer-portal/zh-hk.json +34 -14
  28. package/dist/cdn/translations/store-form/en.json +44 -22
  29. package/dist/cdn/translations/store-shipping-method-form/en.json +4 -3
  30. package/dist/cdn/translations/subscription-card/en.json +8 -0
  31. package/dist/cdn/translations/subscription-form/en.json +16 -8
  32. package/dist/elements/private/Group/Group.js +2 -2
  33. package/dist/elements/private/Group/Group.js.map +1 -1
  34. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLink.js +2 -2
  35. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLink.js.map +1 -1
  36. package/dist/elements/public/CustomerPortal/InternalCustomerPortalPasswordResetView.d.ts +1 -0
  37. package/dist/elements/public/CustomerPortal/InternalCustomerPortalPasswordResetView.js +10 -0
  38. package/dist/elements/public/CustomerPortal/InternalCustomerPortalPasswordResetView.js.map +1 -1
  39. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +3 -6
  40. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  41. package/dist/elements/public/ItemCard/ItemCard.d.ts +3 -1
  42. package/dist/elements/public/ItemCard/ItemCard.js +20 -9
  43. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  44. package/dist/elements/public/ItemCard/types.d.ts +4 -2
  45. package/dist/elements/public/ItemCard/types.js.map +1 -1
  46. package/dist/elements/public/StoreForm/StoreForm.d.ts +5 -12
  47. package/dist/elements/public/StoreForm/StoreForm.js +119 -82
  48. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  49. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +25 -4
  50. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
  51. package/dist/elements/public/SubscriptionCard/SubscriptionCard.d.ts +4 -1
  52. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +19 -6
  53. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  54. package/dist/elements/public/SubscriptionCard/types.d.ts +4 -2
  55. package/dist/elements/public/SubscriptionCard/types.js.map +1 -1
  56. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +20 -7
  57. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  58. package/dist/utils/get-subscription-status.d.ts +3 -1
  59. package/dist/utils/get-subscription-status.js +27 -0
  60. package/dist/utils/get-subscription-status.js.map +1 -1
  61. package/package.json +2 -2
  62. package/dist/cdn/shared-4f64c35e.js +0 -1
  63. package/dist/cdn/shared-e2675ed0.js +0 -1
@@ -919,14 +919,24 @@
919
919
  "frequency": "$t(customer.subscription-card.{{units}}, { \"count\": {{count}}, \"ns\": \"customer-portal\" })",
920
920
  "monthly": "/ miesiąc",
921
921
  "monthly_plural": "/ {{count}} miesiące",
922
+ "price": "{{amount, price}}",
922
923
  "price_recurring": "{{amount, price}} $t(customer.subscription-card.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
923
924
  "price_twice_a_month": "{{amount, price}} $t(customer.subscription-card.twice_a_month, { \"ns\": \"customer-portal\" })",
924
- "subscription_active": "Następna płatność w dniu {{date, date}}",
925
- "subscription_cancelled": "Zakończono {{date, date}}",
926
- "subscription_failed": "Płatność nie powiodła się {{date, date}}",
927
- "subscription_inactive": "Nieaktywny",
928
- "subscription_will_be_cancelled": "Kończy się {{date, date}}",
929
- "subscription_will_be_active": "Zaczyna się {{date, date}}",
925
+ "status_failed_and_ended": "Zakończono dnia {{ end_date, date }} (niepowodzenie dnia {{ first_failed_transaction_date, date }})",
926
+ "status_failed_and_ended_no_enddate": "Zakończono (niepowodzenie dnia {{ first_failed_transaction_date, date }})",
927
+ "status_failed": "Niepowodzenie dnia {{ first_failed_transaction_date, date }}",
928
+ "status_will_start": "Rozpoczyna się dnia {{ start_date, date }}",
929
+ "status_will_start_no_startdate": "Zaplanowano rozpoczęcie",
930
+ "status_will_end_after_payment": "Następna płatność dnia {{ next_transaction_date, date }}, zakończenie dnia {{ end_date, date }}",
931
+ "status_will_end_after_payment_no_nextdate": "Aktywne, zakończenie dnia {{ end_date, date }}",
932
+ "status_will_end_after_payment_no_enddate": "Następna płatność dnia {{ next_transaction_date, date }}",
933
+ "status_will_end": "Zakończenie dnia {{ end_date, date }}",
934
+ "status_will_end_no_enddate": "Aktywne, zaplanowane zakończenie",
935
+ "status_ended": "Zakończono dnia {{ end_date, date }}",
936
+ "status_ended_no_enddate": "Zakończono",
937
+ "status_next_payment": "Następna płatność dnia {{ next_transaction_date, date }}",
938
+ "status_next_payment_no_nextdate": "Aktywne",
939
+ "status_inactive": "Nieaktywny",
930
940
  "transaction_summary": "{{most_expensive_item.name}}",
931
941
  "fees_hint": "Inc. ",
932
942
  "fees_explainer": "Podatki, koszty wysyłki i rabaty mogą zmienić pobraną kwotę.",
@@ -945,15 +955,25 @@
945
955
  "subscription-form": {
946
956
  "header": {
947
957
  "title_new": "Subskrypcja",
948
- "title_existing": "Subskrypcja",
958
+ "title_existing": "Subskrypcja • {{amount, price}}",
949
959
  "title_recurring": "{{amount, price}} $t(customer.subscription-form.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
950
960
  "title_twice_a_month": "{{amount, price}} $t(customer.subscription-form.twice_a_month, { \"ns\": \"customer-portal\" })",
951
- "subtitle_active": "Obejmuje wysyłkę, podatki itp. Następna płatność w dniu {{date, date}}.",
952
- "subtitle_cancelled": "Obejmuje wysyłkę, podatki itp. Zakończono dnia {{date, date}}.",
953
- "subtitle_failed": "Obejmuje wysyłkę, podatki itp. Płatność nie powiodła się {{date, date}}.",
954
- "subtitle_inactive": "Łącznie z przesyłką, podatkami itp. Nieaktywne.",
955
- "subtitle_will_be_cancelled": "Łącznie z przesyłką, podatkami itp. Kończy się dnia {{date, date}}.",
956
- "subtitle_will_be_active": "Obejmuje wysyłkę, podatki itp. Rozpoczyna się w dniu {{date, date}}.",
961
+ "subtitle_failed_and_ended": "W tym wysyłka, podatki itp. Zakończono dnia {{ end_date, date }} (niepowodzenie dnia {{ first_failed_transaction_date, date }}).",
962
+ "subtitle_failed_and_ended_no_enddate": "W tym wysyłka, podatki itp. Zakończono (niepowodzenie dnia {{ first_failed_transaction_date, date }}).",
963
+ "subtitle_failed": "W tym wysyłka, podatki itp. Niepowodzenie dnia {{ first_failed_transaction_date, date }}.",
964
+ "subtitle_will_start": "W tym wysyłka, podatki itp. Rozpoczyna się dnia {{ start_date, date }}.",
965
+ "subtitle_will_start_no_startdate": "W tym wysyłka, podatki itp. Zaplanowano rozpoczęcie.",
966
+ "subtitle_will_end_after_payment": "W tym wysyłka, podatki itp. Następna płatność dnia {{ next_transaction_date, date }}, zakończenie dnia {{ end_date, date }}.",
967
+ "subtitle_will_end_after_payment_no_nextdate": "W tym wysyłka, podatki itp. Aktywne, zakończenie dnia {{ end_date, date }}.",
968
+ "subtitle_will_end_after_payment_no_enddate": "W tym wysyłka, podatki itp. Następna płatność dnia {{ next_transaction_date, date }}.",
969
+ "subtitle_will_end": "W tym wysyłka, podatki itp. Zakończenie dnia {{ end_date, date }}.",
970
+ "subtitle_will_end_no_enddate": "W tym wysyłka, podatki itp. Aktywne, zaplanowane zakończenie.",
971
+ "subtitle_ended": "W tym wysyłka, podatki itp. Zakończono dnia {{ end_date, date }}.",
972
+ "subtitle_ended_no_enddate": "W tym wysyłka, podatki itp. Zakończono.",
973
+ "subtitle_next_payment": "W tym wysyłka, podatki itp. Następna płatność dnia {{ next_transaction_date, date }}.",
974
+ "subtitle_next_payment_no_nextdate": "W tym wysyłka, podatki itp. Aktywne.",
975
+ "subtitle_inactive": "W tym wysyłka, podatki itp. Nieaktywny.",
976
+ "subtitle": "W tym wysyłka, podatki itp.",
957
977
  "copy-id": {
958
978
  "failed_to_copy": "Nie udało się skopiować",
959
979
  "click_to_copy": "Skopiuj ID",
@@ -919,14 +919,24 @@
919
919
  "frequency": "$t(customer.subscription-card.{{units}}, { \"count\": {{count}}, \"ns\": \"customer-portal\" })",
920
920
  "monthly": "/ månad",
921
921
  "monthly_plural": "/ {{count}} månader",
922
+ "price": "{{amount, price}}",
922
923
  "price_recurring": "{{amount, price}} $t(customer.subscription-card.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
923
924
  "price_twice_a_month": "{{amount, price}} $t(customer.subscription-card.twice_a_month, { \"ns\": \"customer-portal\" })",
924
- "subscription_active": "Nästa betalning {{date, date}}",
925
- "subscription_cancelled": "Slutade {{date, date}}",
926
- "subscription_failed": "Betalningen misslyckades den {{date, date}}",
927
- "subscription_inactive": "Inaktiv",
928
- "subscription_will_be_cancelled": "Slutar {{date, date}}",
929
- "subscription_will_be_active": "Börjar {{date, date}}",
925
+ "status_failed_and_ended": "Slutade den {{ end_date, date }} (misslyckades den {{ first_failed_transaction_date, date }})",
926
+ "status_failed_and_ended_no_enddate": "Slutade (misslyckades den {{ first_failed_transaction_date, date }})",
927
+ "status_failed": "Misslyckades den {{ first_failed_transaction_date, date }}",
928
+ "status_will_start": "Startar den {{ start_date, date }}",
929
+ "status_will_start_no_startdate": "Planerad att starta",
930
+ "status_will_end_after_payment": "Nästa betalning den {{ next_transaction_date, date }}, slutar den {{ end_date, date }}",
931
+ "status_will_end_after_payment_no_nextdate": "Aktiv, slutar den {{ end_date, date }}",
932
+ "status_will_end_after_payment_no_enddate": "Nästa betalning den {{ next_transaction_date, date }}",
933
+ "status_will_end": "Slutar den {{ end_date, date }}",
934
+ "status_will_end_no_enddate": "Aktiv, planerad att sluta",
935
+ "status_ended": "Slutade den {{ end_date, date }}",
936
+ "status_ended_no_enddate": "Slutade",
937
+ "status_next_payment": "Nästa betalning den {{ next_transaction_date, date }}",
938
+ "status_next_payment_no_nextdate": "Aktiv",
939
+ "status_inactive": "Inaktiv",
930
940
  "transaction_summary": "{{most_expensive_item.name}}",
931
941
  "fees_hint": "inkl. ",
932
942
  "fees_explainer": "Skatter, frakt och rabatter kan ändra beloppet som debiteras.",
@@ -945,15 +955,25 @@
945
955
  "subscription-form": {
946
956
  "header": {
947
957
  "title_new": "Prenumeration",
948
- "title_existing": "Prenumeration",
958
+ "title_existing": "Prenumeration • {{amount, price}}",
949
959
  "title_recurring": "{{amount, price}} $t(customer.subscription-form.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
950
960
  "title_twice_a_month": "{{amount, price}} $t(customer.subscription-form.twice_a_month, { \"ns\": \"customer-portal\" })",
951
- "subtitle_active": "Inklusive frakt, skatter etc. Nästa betalning {{date, date}}.",
952
- "subtitle_cancelled": "Inklusive frakt, skatter etc. Slutade den {{date, date}}.",
953
- "subtitle_failed": "Inklusive frakt, skatter etc. Betalning misslyckades den {{date, date}}.",
954
- "subtitle_inactive": "Inklusive frakt, skatter etc. Inaktiv.",
955
- "subtitle_will_be_cancelled": "Inklusive frakt, skatter etc. Slutar {{date, date}}.",
956
- "subtitle_will_be_active": "Inklusive frakt, skatter etc. Börjar {{date, date}}.",
961
+ "subtitle_failed_and_ended": "Inklusive frakt, skatter, etc. Slutade den {{ end_date, date }} (misslyckades den {{ first_failed_transaction_date, date }}).",
962
+ "subtitle_failed_and_ended_no_enddate": "Inklusive frakt, skatter, etc. Slutade (misslyckades den {{ first_failed_transaction_date, date }}).",
963
+ "subtitle_failed": "Inklusive frakt, skatter, etc. Misslyckades den {{ first_failed_transaction_date, date }}.",
964
+ "subtitle_will_start": "Inklusive frakt, skatter, etc. Startar den {{ start_date, date }}.",
965
+ "subtitle_will_start_no_startdate": "Inklusive frakt, skatter, etc. Planerad att starta.",
966
+ "subtitle_will_end_after_payment": "Inklusive frakt, skatter, etc. Nästa betalning den {{ next_transaction_date, date }}, slutar den {{ end_date, date }}.",
967
+ "subtitle_will_end_after_payment_no_nextdate": "Inklusive frakt, skatter, etc. Aktiv, slutar den {{ end_date, date }}.",
968
+ "subtitle_will_end_after_payment_no_enddate": "Inklusive frakt, skatter, etc. Nästa betalning den {{ next_transaction_date, date }}.",
969
+ "subtitle_will_end": "Inklusive frakt, skatter, etc. Slutar den {{ end_date, date }}.",
970
+ "subtitle_will_end_no_enddate": "Inklusive frakt, skatter, etc. Aktiv, planerad att sluta.",
971
+ "subtitle_ended": "Inklusive frakt, skatter, etc. Slutade den {{ end_date, date }}.",
972
+ "subtitle_ended_no_enddate": "Inklusive frakt, skatter, etc. Slutade.",
973
+ "subtitle_next_payment": "Inklusive frakt, skatter, etc. Nästa betalning den {{ next_transaction_date, date }}.",
974
+ "subtitle_next_payment_no_nextdate": "Inklusive frakt, skatter, etc. Aktiv.",
975
+ "subtitle_inactive": "Inklusive frakt, skatter, etc. Inaktiv.",
976
+ "subtitle": "Inklusive frakt, skatter, etc.",
957
977
  "copy-id": {
958
978
  "failed_to_copy": "Misslyckades att kopiera",
959
979
  "click_to_copy": "Kopiera ID",
@@ -919,14 +919,24 @@
919
919
  "frequency": "$t(customer.subscription-card.{{units}}, { \"count\": {{count}}, \"ns\": \"customer-portal\" })",
920
920
  "monthly": "/ 月",
921
921
  "monthly_plural": "/ {{count}} 几个月",
922
+ "price": "{{amount, price}}",
922
923
  "price_recurring": "{{amount, price}} $t(customer.subscription-card.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
923
924
  "price_twice_a_month": "{{amount, price}} $t(customer.subscription-card.twice_a_month, { \"ns\": \"customer-portal\" })",
924
- "subscription_active": "下次付款日期 {{date, date}}",
925
- "subscription_cancelled": "结束于 {{date, date}}",
926
- "subscription_failed": "付款失败于 {{date, date}}",
927
- "subscription_inactive": "不活跃",
928
- "subscription_will_be_cancelled": "结束于 {{date, date}}",
929
- "subscription_will_be_active": "开始于 {{date, date}}",
925
+ "status_failed_and_ended": " {{ end_date, date }} 结束(于 {{ first_failed_transaction_date, date }} 失败)",
926
+ "status_failed_and_ended_no_enddate": "已结束(于 {{ first_failed_transaction_date, date }} 失败)",
927
+ "status_failed": " {{ first_failed_transaction_date, date }} 失败",
928
+ "status_will_start": "于 {{ start_date, date }} 开始",
929
+ "status_will_start_no_startdate": "计划开始",
930
+ "status_will_end_after_payment": "下次付款日期为 {{ next_transaction_date, date }},结束于 {{ end_date, date }}",
931
+ "status_will_end_after_payment_no_nextdate": "活跃,结束于 {{ end_date, date }}",
932
+ "status_will_end_after_payment_no_enddate": "下次付款日期为 {{ next_transaction_date, date }}",
933
+ "status_will_end": "于 {{ end_date, date }} 结束",
934
+ "status_will_end_no_enddate": "活跃,计划结束",
935
+ "status_ended": "于 {{ end_date, date }} 结束",
936
+ "status_ended_no_enddate": "已结束",
937
+ "status_next_payment": "下次付款日期为 {{ next_transaction_date, date }}",
938
+ "status_next_payment_no_nextdate": "活跃",
939
+ "status_inactive": "不活跃",
930
940
  "transaction_summary": "{{most_expensive_item.name}}",
931
941
  "fees_hint": "公司",
932
942
  "fees_explainer": "税费、运费和折扣可能会改变收费金额。",
@@ -944,16 +954,26 @@
944
954
  },
945
955
  "subscription-form": {
946
956
  "header": {
947
- "title_new": "訂閱",
948
- "title_existing": "訂閱",
957
+ "title_new": "订阅",
958
+ "title_existing": "订阅 • {{amount, price}}",
949
959
  "title_recurring": "{{amount, price}} $t(customer.subscription-form.frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"customer-portal\" })",
950
960
  "title_twice_a_month": "{{amount, price}} $t(customer.subscription-form.twice_a_month, { \"ns\": \"customer-portal\" })",
951
- "subtitle_active": "包括運費、稅金等。下次付款日期 {{date, date}}",
952
- "subtitle_cancelled": "包括運費、稅金等。結束於 {{date, date}}",
953
- "subtitle_failed": "包括運費、稅金等。付款失敗於 {{date, date}}",
954
- "subtitle_inactive": "包括運費、稅金等。不活躍。",
955
- "subtitle_will_be_cancelled": "包括運費、稅金等。結束於 {{date, date}}。",
956
- "subtitle_will_be_active": "包括運費、稅金等。開始於 {{date, date}}。",
961
+ "subtitle_failed_and_ended": "包括运费、税费等。于 {{ end_date, date }} 结束(于 {{ first_failed_transaction_date, date }} 失败)。",
962
+ "subtitle_failed_and_ended_no_enddate": "包括运费、税费等。已结束(于 {{ first_failed_transaction_date, date }} 失败)。",
963
+ "subtitle_failed": "包括运费、税费等。于 {{ first_failed_transaction_date, date }} 失败。",
964
+ "subtitle_will_start": "包括运费、税费等。于 {{ start_date, date }} 开始。",
965
+ "subtitle_will_start_no_startdate": "包括运费、税费等。计划开始。",
966
+ "subtitle_will_end_after_payment": "包括运费、税费等。下次付款日期为 {{ next_transaction_date, date }},结束于 {{ end_date, date }}。",
967
+ "subtitle_will_end_after_payment_no_nextdate": "包括运费、税费等。活跃,结束于 {{ end_date, date }}。",
968
+ "subtitle_will_end_after_payment_no_enddate": "包括运费、税费等。下次付款日期为 {{ next_transaction_date, date }}。",
969
+ "subtitle_will_end": "包括运费、税费等。于 {{ end_date, date }} 结束。",
970
+ "subtitle_will_end_no_enddate": "包括运费、税费等。活跃,计划结束。",
971
+ "subtitle_ended": "包括运费、税费等。于 {{ end_date, date }} 结束。",
972
+ "subtitle_ended_no_enddate": "包括运费、税费等。已结束。",
973
+ "subtitle_next_payment": "包括运费、税费等。下次付款日期为 {{ next_transaction_date, date }}。",
974
+ "subtitle_next_payment_no_nextdate": "包括运费、税费等。活跃。",
975
+ "subtitle_inactive": "包括运费、税费等。不活跃。",
976
+ "subtitle": "包括运费、税费等。",
957
977
  "copy-id": {
958
978
  "failed_to_copy": "複製失敗",
959
979
  "click_to_copy": "複製 ID",
@@ -100,13 +100,47 @@
100
100
  "helper_text": ""
101
101
  }
102
102
  },
103
- "legacy-api": {
104
- "label": "Legacy API",
103
+ "store-secrets": {
104
+ "label": "Store secrets",
105
105
  "helper_text": "",
106
+ "use-single-secret": {
107
+ "label": "Use a universal store secret",
108
+ "helper_text": "When enabled, we will use the same secret for cart signing, legacy API, XML datafeed and SSO. Note that changing this setting will invalidate all existing secrets.",
109
+ "checked": "Yes",
110
+ "unchecked": "No"
111
+ },
112
+ "webhook-key": {
113
+ "label": "Universal store secret",
114
+ "placeholder": "None",
115
+ "helper_text": "",
116
+ "v8n_required": "Please create a universal store secret.",
117
+ "v8n_too_long": "Please shorten this value to 500 characters or less."
118
+ },
106
119
  "webhook-key-api-legacy": {
107
- "label": "API key",
120
+ "label": "Legacy API key",
108
121
  "placeholder": "None",
109
- "helper_text": ""
122
+ "helper_text": "",
123
+ "v8n_too_long": "Please shorten this value to 100 characters or less."
124
+ },
125
+ "webhook-key-xml-datafeed": {
126
+ "label": "Legacy XML datafeed encryption key",
127
+ "placeholder": "None",
128
+ "helper_text": "",
129
+ "v8n_required": "This key is required because the legacy XML datafeed is enabled.",
130
+ "v8n_too_long": "Please shorten this value to 100 characters or less."
131
+ },
132
+ "webhook-key-sso": {
133
+ "label": "SSO secret",
134
+ "placeholder": "None",
135
+ "helper_text": "",
136
+ "v8n_too_long": "Please shorten this value to 100 characters or less."
137
+ },
138
+ "webhook-key-cart-signing": {
139
+ "label": "Cart signing key",
140
+ "placeholder": "None",
141
+ "helper_text": "",
142
+ "v8n_required": "This key is required because cart signing is enabled.",
143
+ "v8n_too_long": "Please shorten this value to 100 characters or less."
110
144
  }
111
145
  },
112
146
  "emails": {
@@ -197,16 +231,12 @@
197
231
  "day": "Day",
198
232
  "day_plural": "Days"
199
233
  },
200
- "webhook-key-cart-signing": {
201
- "label": "HMAC encryption key",
202
- "placeholder": "None",
203
- "helper_text": ""
204
- },
205
234
  "use-cart-validation": {
206
235
  "label": "Prevent product link and form tampering",
207
236
  "helper_text": "Enabling this option will require all cart links and forms to pass HMAC-based verification before products can be added to the cart. You will need to sign your HTML to use this feature.",
208
237
  "checked": "Yes",
209
- "unchecked": "No"
238
+ "unchecked": "No",
239
+ "v8n_webhook_key_required": "Please create a cart signing key or a universal store secret to enable this feature."
210
240
  },
211
241
  "products-require-expires-property": {
212
242
  "label": "My products have limited availability",
@@ -247,11 +277,6 @@
247
277
  "helper_text": "",
248
278
  "v8n_required": "Please enter your SSO endpoint URL",
249
279
  "v8n_too_long": "Please shorten this URL to 300 characters or less"
250
- },
251
- "webhook-key-sso": {
252
- "label": "SSO secret",
253
- "placeholder": "None",
254
- "helper_text": ""
255
280
  }
256
281
  },
257
282
  "receipt": {
@@ -344,18 +369,15 @@
344
369
  "label": "Enable datafeed",
345
370
  "helper_text": "This is a deprecated webhook that should only be used for third-party integrations that still require it. For any new integrations where you need to trigger a webhook for each transaction on your store, we strongly recommend using the JSON webhooks.",
346
371
  "checked": "Yes",
347
- "unchecked": "No"
372
+ "unchecked": "No",
373
+ "v8n_webhook_key_required": "Please create a legacy XML datafeed encryption key or a universal store secret to enable this feature."
348
374
  },
349
375
  "webhook-url": {
350
376
  "label": "Webhook URL",
351
377
  "placeholder": "https://example.com/my-xml-datafeed",
352
378
  "helper_text": "",
353
- "v8n_too_long": "Please shorten this URL to 300 characters or less"
354
- },
355
- "webhook-key-xml-datafeed": {
356
- "label": "Encryption key",
357
- "placeholder": "None",
358
- "helper_text": ""
379
+ "v8n_too_long": "Please shorten this URL to 300 characters or less.",
380
+ "v8n_required": "Please enter a URL."
359
381
  }
360
382
  },
361
383
  "hcaptcha": {
@@ -160,8 +160,9 @@
160
160
  "account": {
161
161
  "label": "Account",
162
162
  "helper_text": "",
163
+ "ups_use_legacy_admin_message": "Connecting to a UPS account is currently restricted from this admin. Please utilise the Integrations page in our legacy administration to connect to your UPS account.",
163
164
  "use-custom-account": {
164
- "label": "Use custom credentials",
165
+ "label": "Use my own account",
165
166
  "helper_text": "",
166
167
  "checked": "Yes",
167
168
  "unchecked": "No"
@@ -173,10 +174,10 @@
173
174
  "v8n_too_long": "Authentication key must be 50 characters or less."
174
175
  },
175
176
  "meter-number": {
176
- "label": "Meter Number",
177
+ "label": "Account Number",
177
178
  "placeholder": "N/A",
178
179
  "helper_text": "",
179
- "v8n_too_long": "Meter number must be 50 characters or less."
180
+ "v8n_too_long": "Account number must be 50 characters or less."
180
181
  },
181
182
  "accountid": {
182
183
  "label": "Account ID",
@@ -4,15 +4,23 @@
4
4
  "frequency": "$t({{units}}, { \"count\": {{count}}, \"ns\": \"subscription-card\" })",
5
5
  "monthly": "Monthly",
6
6
  "monthly_plural": "Every {{count}} months",
7
+ "price": "{{amount, price}}",
7
8
  "price_recurring": "{{amount, price}} $t(frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"subscription-card\" })",
8
9
  "price_twice_a_month": "{{amount, price}} $t(twice_a_month, { \"ns\": \"subscription-card\" })",
9
10
  "status_failed_and_ended": "Ended on {{ end_date, date }} (failed on {{ first_failed_transaction_date, date }})",
11
+ "status_failed_and_ended_no_enddate": "Ended (failed on {{ first_failed_transaction_date, date }})",
10
12
  "status_failed": "Failed on {{ first_failed_transaction_date, date }}",
11
13
  "status_will_start": "Starts on {{ start_date, date }}",
14
+ "status_will_start_no_startdate": "Scheduled to start",
12
15
  "status_will_end_after_payment": "Next payment on {{ next_transaction_date, date }}, ending {{ end_date, date }}",
16
+ "status_will_end_after_payment_no_nextdate": "Active, ending {{ end_date, date }}",
17
+ "status_will_end_after_payment_no_enddate": "Next payment on {{ next_transaction_date, date }}",
13
18
  "status_will_end": "Ends on {{ end_date, date }}",
19
+ "status_will_end_no_enddate": "Active, scheduled to end",
14
20
  "status_ended": "Ended on {{ end_date, date }}",
21
+ "status_ended_no_enddate": "Ended",
15
22
  "status_next_payment": "Next payment on {{ next_transaction_date, date }}",
23
+ "status_next_payment_no_nextdate": "Active",
16
24
  "status_inactive": "Inactive",
17
25
  "transaction_summary": "{{most_expensive_item.name}}",
18
26
  "fees_hint": "inc. shipping, taxes, etc.",
@@ -1,16 +1,24 @@
1
1
  {
2
2
  "header": {
3
3
  "title_new": "Subscription",
4
- "title_existing": "Subscription",
4
+ "title_existing": "Subscription • {{amount, price}}",
5
5
  "title_recurring": "{{amount, price}} $t(frequency, { \"count\": \"{{count}}\", \"units\": \"{{units}}\", \"ns\": \"subscription-form\" })",
6
6
  "title_twice_a_month": "{{amount, price}} $t(twice_a_month, { \"ns\": \"subscription-form\" })",
7
- "subtitle_failed_and_ended": "Including shipping, taxes, etc. Ended on {{ end_date, date }} (failed on {{ first_failed_transaction_date, date }})",
8
- "subtitle_failed": "Including shipping, taxes, etc. Failed on {{ first_failed_transaction_date, date }}",
9
- "subtitle_will_start": "Including shipping, taxes, etc. Starts on {{ start_date, date }}",
10
- "subtitle_will_end_after_payment": "Including shipping, taxes, etc. Next payment on {{ next_transaction_date, date }}, ending {{ end_date, date }}",
11
- "subtitle_will_end": "Including shipping, taxes, etc. Ends on {{ end_date, date }}",
12
- "subtitle_ended": "Including shipping, taxes, etc. Ended on {{ end_date, date }}",
13
- "subtitle_next_payment": "Including shipping, taxes, etc. Next payment on {{ next_transaction_date, date }}",
7
+ "subtitle_failed_and_ended": "Including shipping, taxes, etc. Ended on {{ end_date, date }} (failed on {{ first_failed_transaction_date, date }}).",
8
+ "subtitle_failed_and_ended_no_enddate": "Including shipping, taxes, etc. Ended (failed on {{ first_failed_transaction_date, date }}).",
9
+ "subtitle_failed": "Including shipping, taxes, etc. Failed on {{ first_failed_transaction_date, date }}.",
10
+ "subtitle_will_start": "Including shipping, taxes, etc. Starts on {{ start_date, date }}.",
11
+ "subtitle_will_start_no_startdate": "Including shipping, taxes, etc. Scheduled to start.",
12
+ "subtitle_will_end_after_payment": "Including shipping, taxes, etc. Next payment on {{ next_transaction_date, date }}, ending {{ end_date, date }}.",
13
+ "subtitle_will_end_after_payment_no_nextdate": "Including shipping, taxes, etc. Active, ending {{ end_date, date }}.",
14
+ "subtitle_will_end_after_payment_no_enddate": "Including shipping, taxes, etc. Next payment on {{ next_transaction_date, date }}.",
15
+ "subtitle_will_end": "Including shipping, taxes, etc. Ends on {{ end_date, date }}.",
16
+ "subtitle_will_end_no_enddate": "Including shipping, taxes, etc. Active, scheduled to end.",
17
+ "subtitle_ended": "Including shipping, taxes, etc. Ended on {{ end_date, date }}.",
18
+ "subtitle_ended_no_enddate": "Including shipping, taxes, etc. Ended.",
19
+ "subtitle_next_payment": "Including shipping, taxes, etc. Next payment on {{ next_transaction_date, date }}.",
20
+ "subtitle_next_payment_no_nextdate": "Including shipping, taxes, etc. Active.",
21
+ "subtitle_inactive": "Including shipping, taxes, etc. Inactive.",
14
22
  "subtitle": "Including shipping, taxes, etc.",
15
23
  "copy-id": {
16
24
  "failed_to_copy": "Failed to copy",
@@ -16,10 +16,10 @@ export class Group extends LitElement {
16
16
  return Themeable.styles;
17
17
  }
18
18
  render() {
19
- const frameClass = 'border border-contrast-10 overflow-hidden';
19
+ const frameClass = 'bg-contrast-5 overflow-hidden';
20
20
  return html `
21
21
  <section class="space-y-s font-lumo antialiased">
22
- <h3 class=${`text-s font-medium text-secondary leading-none ${this.frame ? '' : 'pl-m'}`}>
22
+ <h3 class=${`text-l font-medium text-body leading-none ${this.frame ? '' : 'pl-m'}`}>
23
23
  <slot name="header"></slot>
24
24
  </h3>
25
25
 
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../../src/elements/private/Group/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAGV,IAAI,GACL,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,qCAAkC;AAEtD,kDAAkD;AAClD,MAAM,OAAO,KAAM,SAAQ,UAAU;IAArC;;QAYS,UAAK,GAAG,KAAK,CAAC;IAiBvB,CAAC;IA5BQ,MAAM,KAAK,UAAU;QAC1B,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACzB,CAAC;IACJ,CAAC;IAEM,MAAM,KAAK,MAAM;QACtB,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IAIM,MAAM;QACX,MAAM,UAAU,GAAG,2CAA2C,CAAC;QAE/D,OAAO,IAAI,CAAA;;oBAEK,kDAAkD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;;;;8BAIlE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;;;;KAIrD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import {\n CSSResult,\n CSSResultArray,\n LitElement,\n PropertyDeclarations,\n TemplateResult,\n html,\n} from 'lit-element';\n\nimport { Themeable } from '../../../mixins/themeable';\n\n/** @deprecated – use internal controls instead */\nexport class Group extends LitElement {\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n frame: { type: Boolean },\n };\n }\n\n public static get styles(): CSSResult | CSSResultArray {\n return Themeable.styles;\n }\n\n public frame = false;\n\n public render(): TemplateResult {\n const frameClass = 'border border-contrast-10 overflow-hidden';\n\n return html`\n <section class=\"space-y-s font-lumo antialiased\">\n <h3 class=${`text-s font-medium text-secondary leading-none ${this.frame ? '' : 'pl-m'}`}>\n <slot name=\"header\"></slot>\n </h3>\n\n <div class=\"rounded ${this.frame ? frameClass : ''}\">\n <slot></slot>\n </div>\n </section>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../../src/elements/private/Group/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAGV,IAAI,GACL,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,qCAAkC;AAEtD,kDAAkD;AAClD,MAAM,OAAO,KAAM,SAAQ,UAAU;IAArC;;QAYS,UAAK,GAAG,KAAK,CAAC;IAiBvB,CAAC;IA5BQ,MAAM,KAAK,UAAU;QAC1B,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACzB,CAAC;IACJ,CAAC;IAEM,MAAM,KAAK,MAAM;QACtB,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IAIM,MAAM;QACX,MAAM,UAAU,GAAG,+BAA+B,CAAC;QAEnD,OAAO,IAAI,CAAA;;oBAEK,6CAA6C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;;;;8BAI7D,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;;;;KAIrD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import {\n CSSResult,\n CSSResultArray,\n LitElement,\n PropertyDeclarations,\n TemplateResult,\n html,\n} from 'lit-element';\n\nimport { Themeable } from '../../../mixins/themeable';\n\n/** @deprecated – use internal controls instead */\nexport class Group extends LitElement {\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n frame: { type: Boolean },\n };\n }\n\n public static get styles(): CSSResult | CSSResultArray {\n return Themeable.styles;\n }\n\n public frame = false;\n\n public render(): TemplateResult {\n const frameClass = 'bg-contrast-5 overflow-hidden';\n\n return html`\n <section class=\"space-y-s font-lumo antialiased\">\n <h3 class=${`text-l font-medium text-body leading-none ${this.frame ? '' : 'pl-m'}`}>\n <slot name=\"header\"></slot>\n </h3>\n\n <div class=\"rounded ${this.frame ? frameClass : ''}\">\n <slot></slot>\n </div>\n </section>\n `;\n }\n}\n"]}
@@ -18,8 +18,8 @@ export class InternalCustomerPortalLink extends ThemeableMixin(LitElement) {
18
18
  }
19
19
  render() {
20
20
  const actionClass = classMap({
21
- 'flex-auto font-medium tracking-wide text-s rounded-s transition-colors': true,
22
- 'hover-text-primary hover-cursor-pointer': !this.disabled,
21
+ 'flex-auto leading-m font-medium tracking-wide text-m rounded-s transition-colors': true,
22
+ 'text-primary hover-underline hover-cursor-pointer': !this.disabled,
23
23
  'focus-outline-none focus-ring-2 ring-primary-50 ring-offset-2': !this.disabled,
24
24
  'text-disabled cursor-default': this.disabled,
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalLink.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,OAAO,0BAA2B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAA1E;;QAUE,aAAQ,GAAG,KAAK,CAAC;QAEjB,SAAI,GAAG,EAAE,CAAC;QAEV,SAAI,GAAG,EAAE,CAAC;IAuBZ,CAAC;IApCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACtB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,MAAM;QACJ,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC3B,wEAAwE,EAAE,IAAI;YAC9E,yCAAyC,EAAE,CAAC,IAAI,CAAC,QAAQ;YACzD,+DAA+D,EAAE,CAAC,IAAI,CAAC,QAAQ;YAC/E,8BAA8B,EAAE,IAAI,CAAC,QAAQ;SAC9C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,mBAAmB,IAAI,CAAC,IAAI,mCAAmC,CAAC,CAAC,CAAC,EAAE;;KAEvF,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAA,iBAAiB,WAAW,aAAa,aAAa,WAAW,CAAC;SAC9E;QAED,OAAO,IAAI,CAAA;iBACE,WAAW,SAAS,IAAI,CAAC,IAAI,4BAA4B,aAAa;KAClF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { classMap } from '../../../utils/class-map';\n\nexport class InternalCustomerPortalLink extends ThemeableMixin(LitElement) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disabled: { type: Boolean },\n href: { type: String },\n icon: { type: String },\n };\n }\n\n disabled = false;\n\n href = '';\n\n icon = '';\n\n render(): TemplateResult {\n const actionClass = classMap({\n 'flex-auto font-medium tracking-wide text-s rounded-s transition-colors': true,\n 'hover-text-primary hover-cursor-pointer': !this.disabled,\n 'focus-outline-none focus-ring-2 ring-primary-50 ring-offset-2': !this.disabled,\n 'text-disabled cursor-default': this.disabled,\n });\n\n const actionContent = html`\n ${this.icon ? html`<iron-icon icon=${this.icon} class=\"icon-inline\"></iron-icon>` : ''}\n <slot></slot>\n `;\n\n if (this.disabled) {\n return html`<button class=${actionClass} disabled>${actionContent}</button>`;\n }\n\n return html`\n <a class=${actionClass} href=${this.href} rel=\"nofollow noopener\">${actionContent}</a>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalLink.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,OAAO,0BAA2B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAA1E;;QAUE,aAAQ,GAAG,KAAK,CAAC;QAEjB,SAAI,GAAG,EAAE,CAAC;QAEV,SAAI,GAAG,EAAE,CAAC;IAuBZ,CAAC;IApCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACtB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,MAAM;QACJ,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC3B,kFAAkF,EAAE,IAAI;YACxF,mDAAmD,EAAE,CAAC,IAAI,CAAC,QAAQ;YACnE,+DAA+D,EAAE,CAAC,IAAI,CAAC,QAAQ;YAC/E,8BAA8B,EAAE,IAAI,CAAC,QAAQ;SAC9C,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,mBAAmB,IAAI,CAAC,IAAI,mCAAmC,CAAC,CAAC,CAAC,EAAE;;KAEvF,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAA,iBAAiB,WAAW,aAAa,aAAa,WAAW,CAAC;SAC9E;QAED,OAAO,IAAI,CAAA;iBACE,WAAW,SAAS,IAAI,CAAC,IAAI,4BAA4B,aAAa;KAClF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { classMap } from '../../../utils/class-map';\n\nexport class InternalCustomerPortalLink extends ThemeableMixin(LitElement) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disabled: { type: Boolean },\n href: { type: String },\n icon: { type: String },\n };\n }\n\n disabled = false;\n\n href = '';\n\n icon = '';\n\n render(): TemplateResult {\n const actionClass = classMap({\n 'flex-auto leading-m font-medium tracking-wide text-m rounded-s transition-colors': true,\n 'text-primary hover-underline hover-cursor-pointer': !this.disabled,\n 'focus-outline-none focus-ring-2 ring-primary-50 ring-offset-2': !this.disabled,\n 'text-disabled cursor-default': this.disabled,\n });\n\n const actionContent = html`\n ${this.icon ? html`<iron-icon icon=${this.icon} class=\"icon-inline\"></iron-icon>` : ''}\n <slot></slot>\n `;\n\n if (this.disabled) {\n return html`<button class=${actionClass} disabled>${actionContent}</button>`;\n }\n\n return html`\n <a class=${actionClass} href=${this.href} rel=\"nofollow noopener\">${actionContent}</a>\n `;\n }\n}\n"]}
@@ -21,5 +21,6 @@ export declare class InternalCustomerPortalPasswordResetView extends InternalCus
21
21
  private readonly __generatorOptions;
22
22
  renderBody(): TemplateResult;
23
23
  submit(): void;
24
+ protected _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult>;
24
25
  }
25
26
  export {};
@@ -68,5 +68,15 @@ export class InternalCustomerPortalPasswordResetView extends TranslatableMixin(I
68
68
  this.edit({ password_old: (_a = this.passwordOld) !== null && _a !== void 0 ? _a : '' });
69
69
  super.submit();
70
70
  }
71
+ async _fetch(...args) {
72
+ const request = new Request(...args);
73
+ if (request.method !== 'PATCH')
74
+ return super._fetch(...args);
75
+ const body = await request.json();
76
+ const data = await super._fetch(...args);
77
+ data.password_old = body.password_old;
78
+ data.password = body.password;
79
+ return data;
80
+ }
71
81
  }
72
82
  //# sourceMappingURL=InternalCustomerPortalPasswordResetView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalCustomerPortalPasswordResetView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalPasswordResetView.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;AAYhE,MAAM,OAAO,uCAAwC,SAAQ,iBAAiB,CAAC,YAAY,CAAO;IAAlG;;QA2BE,gBAAW,GAAkB,IAAI,CAAC;QAEjB,uBAAkB,GAAqB;YACtD,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;SACxD,CAAC;IAqCJ,CAAC;IAnEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;OAIF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAuB;YACnD,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,uBAAuB;YACpE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,uBAAuB;SAClF,CAAC;IACJ,CAAC;IAQD,UAAU;QACR,OAAO,IAAI,CAAA;;yCAE0B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW;;;;2BAI7D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB;;;;;;;;8BAQjD,IAAI,CAAC,kBAAkB;;;;;;;sBAO/B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;mBACpC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;;;;;KAKjC,CAAC;IACJ,CAAC;IAED,MAAM;;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,QAAE,IAAI,CAAC,WAAW,mCAAI,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;CACF","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { GeneratorOptions } from '../../internal/InternalPasswordControl/generateRandomPassword';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Graph } from '@foxy.io/sdk/customer';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html, css } from 'lit-element';\n\nimport checkPasswordStrength from 'check-password-strength';\nconst passwordStrength = checkPasswordStrength.passwordStrength;\n\ntype Data = Resource<\n Graph & {\n props: {\n /** When updating the password using Customer API, these values are required to complete the request. */\n password_old?: string;\n password?: string;\n };\n }\n>;\n\nexport class InternalCustomerPortalPasswordResetView extends TranslatableMixin(InternalForm)<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n passwordOld: { attribute: 'password-old' },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-25rem {\n max-width: 25rem;\n }\n `,\n ];\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ password: v }) => !!v || 'password:v8n_required',\n ({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',\n ({ password: v }) => !v || passwordStrength(v).id >= 2 || 'password:v8n_too_weak',\n ];\n }\n\n passwordOld: string | null = null;\n\n private readonly __generatorOptions: GeneratorOptions = {\n checkStrength: value => passwordStrength(value).id >= 2,\n };\n\n renderBody(): TemplateResult {\n return html`\n <div class=\"m-auto max-w-25rem leading-s\">\n <p class=\"text-xxl font-medium ${this.in('busy') ? 'text-disabled' : 'text-body'}\">\n <foxy-i18n infer=\"\" key=\"title\"></foxy-i18n>\n </p>\n\n <p class=\"text-l ${this.in('busy') ? 'text-disabled' : 'text-secondary'}\">\n <foxy-i18n infer=\"\" key=\"subtitle\"></foxy-i18n>\n </p>\n\n <foxy-internal-password-control\n infer=\"password\"\n class=\"mt-m\"\n show-generator\n .generatorOptions=${this.__generatorOptions}\n >\n </foxy-internal-password-control>\n\n <vaadin-button\n class=\"w-full mt-l\"\n theme=\"primary\"\n ?disabled=${this.disabled || !this.in('idle')}\n @click=${() => this.submit()}\n >\n <foxy-i18n infer=\"\" key=\"submit\"></foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n\n submit(): void {\n this.edit({ password_old: this.passwordOld ?? '' });\n super.submit();\n }\n}\n"]}
1
+ {"version":3,"file":"InternalCustomerPortalPasswordResetView.js","sourceRoot":"","sources":["../../../../src/elements/public/CustomerPortal/InternalCustomerPortalPasswordResetView.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;AAYhE,MAAM,OAAO,uCAAwC,SAAQ,iBAAiB,CAAC,YAAY,CAAO;IAAlG;;QA2BE,gBAAW,GAAkB,IAAI,CAAC;QAEjB,uBAAkB,GAAqB;YACtD,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;SACxD,CAAC;IAkDJ,CAAC;IAhFC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;OAIF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAuB;YACnD,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,uBAAuB;YACpE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,uBAAuB;SAClF,CAAC;IACJ,CAAC;IAQD,UAAU;QACR,OAAO,IAAI,CAAA;;yCAE0B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW;;;;2BAI7D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB;;;;;;;;8BAQjD,IAAI,CAAC,kBAAkB;;;;;;;sBAO/B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;mBACpC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;;;;;KAKjC,CAAC;IACJ,CAAC;IAED,MAAM;;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,QAAE,IAAI,CAAC,WAAW,mCAAI,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,MAAM,CAAiB,GAAG,IAAiC;QACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,MAAM,CAAU,GAAG,IAAI,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAO,GAAG,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,OAAO,IAA0B,CAAC;IACpC,CAAC;CACF","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { GeneratorOptions } from '../../internal/InternalPasswordControl/generateRandomPassword';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Graph } from '@foxy.io/sdk/customer';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html, css } from 'lit-element';\n\nimport checkPasswordStrength from 'check-password-strength';\nconst passwordStrength = checkPasswordStrength.passwordStrength;\n\ntype Data = Resource<\n Graph & {\n props: {\n /** When updating the password using Customer API, these values are required to complete the request. */\n password_old?: string;\n password?: string;\n };\n }\n>;\n\nexport class InternalCustomerPortalPasswordResetView extends TranslatableMixin(InternalForm)<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n passwordOld: { attribute: 'password-old' },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-25rem {\n max-width: 25rem;\n }\n `,\n ];\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ password: v }) => !!v || 'password:v8n_required',\n ({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',\n ({ password: v }) => !v || passwordStrength(v).id >= 2 || 'password:v8n_too_weak',\n ];\n }\n\n passwordOld: string | null = null;\n\n private readonly __generatorOptions: GeneratorOptions = {\n checkStrength: value => passwordStrength(value).id >= 2,\n };\n\n renderBody(): TemplateResult {\n return html`\n <div class=\"m-auto max-w-25rem leading-s\">\n <p class=\"text-xxl font-medium ${this.in('busy') ? 'text-disabled' : 'text-body'}\">\n <foxy-i18n infer=\"\" key=\"title\"></foxy-i18n>\n </p>\n\n <p class=\"text-l ${this.in('busy') ? 'text-disabled' : 'text-secondary'}\">\n <foxy-i18n infer=\"\" key=\"subtitle\"></foxy-i18n>\n </p>\n\n <foxy-internal-password-control\n infer=\"password\"\n class=\"mt-m\"\n show-generator\n .generatorOptions=${this.__generatorOptions}\n >\n </foxy-internal-password-control>\n\n <vaadin-button\n class=\"w-full mt-l\"\n theme=\"primary\"\n ?disabled=${this.disabled || !this.in('idle')}\n @click=${() => this.submit()}\n >\n <foxy-i18n infer=\"\" key=\"submit\"></foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n\n submit(): void {\n this.edit({ password_old: this.passwordOld ?? '' });\n super.submit();\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const request = new Request(...args);\n if (request.method !== 'PATCH') return super._fetch<TResult>(...args);\n\n const body = await request.json();\n const data = await super._fetch<Data>(...args);\n\n data.password_old = body.password_old;\n data.password = body.password;\n\n return data as unknown as TResult;\n }\n}\n"]}
@@ -30,7 +30,6 @@ export class InternalCustomerPortalSubscriptions extends Base {
30
30
  <foxy-internal-customer-portal-link
31
31
  data-testid="header:actions:update"
32
32
  href=${billingLink}
33
- icon="icons:credit-card"
34
33
  ?disabled=${hasEnded || !host.in('idle')}
35
34
  >
36
35
  <foxy-i18n lang=${host.lang} key="update_billing" ns=${host.ns}></foxy-i18n>
@@ -54,7 +53,6 @@ export class InternalCustomerPortalSubscriptions extends Base {
54
53
  <foxy-internal-customer-portal-link
55
54
  data-testid="header:actions:end"
56
55
  href=${cancelLink}
57
- icon="icons:block"
58
56
  ?disabled=${hasEndDate || !host.in('idle')}
59
57
  >
60
58
  <foxy-i18n lang=${host.lang} key="end_subscription" ns=${host.ns}></foxy-i18n>
@@ -70,10 +68,7 @@ export class InternalCustomerPortalSubscriptions extends Base {
70
68
  <style>
71
69
  main {
72
70
  display: flex;
73
- justify-content: space-between;
74
- padding-top: var(--lumo-space-xs);
75
- margin-top: var(--lumo-space-s);
76
- border-top: 1px solid var(--lumo-contrast-10pct);
71
+ gap: var(--lumo-space-m);
77
72
  color: var(--lumo-secondary-color);
78
73
  }
79
74
  </style>
@@ -167,6 +162,7 @@ export class InternalCustomerPortalSubscriptions extends Base {
167
162
  >
168
163
  <foxy-subscription-card
169
164
  hiddencontrols="email"
165
+ settings=${JSON.stringify(this.settings)}
170
166
  parent=${ctx.parent}
171
167
  group=${ctx.group}
172
168
  lang=${ctx.lang}
@@ -226,6 +222,7 @@ export class InternalCustomerPortalSubscriptions extends Base {
226
222
  lang=${this.lang}
227
223
  ns=${this.ns}
228
224
  id="subscription-dialog"
225
+ alert
229
226
  .form=${this.__renderForm}
230
227
  .templates=${this.getNestedTemplates('list:form')}
231
228
  >