@foxy.io/elements 1.15.0-beta.3 → 1.15.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +2 -2
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-api.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -169
- package/dist/cdn/foxy-customer-portal.js +2 -2
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -0
- package/dist/cdn/foxy-gift-card-code-form.js +1 -0
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -0
- package/dist/cdn/foxy-gift-card-form.js +1 -0
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-nucleon-element.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +2 -2
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/{shared-9af7b5f0.js → shared-02945b27.js} +1 -1
- package/dist/cdn/{shared-a8d96c23.js → shared-06e64d75.js} +1 -1
- package/dist/cdn/{shared-b03b6d72.js → shared-07049bfe.js} +1 -1
- package/dist/cdn/{shared-ccea5a33.js → shared-08c63028.js} +1 -1
- package/dist/cdn/shared-09069d7c.js +1 -0
- package/dist/cdn/shared-11708514.js +1 -0
- package/dist/cdn/{shared-a11160e7.js → shared-20b9ce70.js} +1 -1
- package/dist/cdn/{shared-d3831f99.js → shared-21419f10.js} +1 -1
- package/dist/cdn/shared-25e67340.js +302 -0
- package/dist/cdn/{shared-423a4840.js → shared-39e3ae67.js} +1 -1
- package/dist/cdn/shared-3be96355.js +1 -0
- package/dist/cdn/{shared-51b5e223.js → shared-40b5267a.js} +1 -1
- package/dist/cdn/{shared-fb403e1f.js → shared-448781f9.js} +1 -1
- package/dist/cdn/{shared-8f7a66c4.js → shared-4dc6d228.js} +1 -1
- package/dist/cdn/shared-5272c758.js +1 -0
- package/dist/cdn/{shared-c1dadefe.js → shared-5535f38f.js} +1 -1
- package/dist/cdn/shared-66633ff7.js +1 -0
- package/dist/cdn/{shared-30131f76.js → shared-756034e4.js} +1 -1
- package/dist/cdn/shared-7f0a9790.js +1 -0
- package/dist/cdn/{shared-6b7602c7.js → shared-805d18a2.js} +1 -1
- package/dist/cdn/shared-940a4826.js +1 -0
- package/dist/cdn/{shared-b2330475.js → shared-a23cf7c8.js} +1 -1
- package/dist/cdn/{shared-0bda8ecb.js → shared-a7095b6a.js} +1 -1
- package/dist/cdn/{shared-a4e6ecb0.js → shared-b9f18aaa.js} +1 -1
- package/dist/cdn/{shared-51e28c83.js → shared-df730f90.js} +1 -1
- package/dist/cdn/{shared-4038cb18.js → shared-e209cb55.js} +1 -1
- package/dist/cdn/{shared-cd3c902e.js → shared-e68b9c83.js} +1 -1
- package/dist/cdn/{shared-ff149b55.js → shared-ffb27563.js} +1 -1
- package/dist/cdn/translations/shared/en.json +180 -0
- package/dist/elements/private/EditableList/EditableList.js +1 -0
- package/dist/elements/private/EditableList/EditableList.js.map +1 -1
- package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +2 -1
- package/dist/elements/private/FrequencyInput/FrequencyInput.js +3 -1
- package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
- package/dist/elements/public/CollectionPage/CollectionPage.js +3 -1
- package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
- package/dist/elements/public/CollectionPage/types.d.ts +2 -0
- package/dist/elements/public/CollectionPage/types.js.map +1 -1
- package/dist/elements/public/CouponCard/CouponCard.js +5 -5
- package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
- package/dist/elements/public/CouponCodesForm/CouponCodesForm.d.ts +2 -0
- package/dist/elements/public/CouponCodesForm/CouponCodesForm.js +7 -1
- package/dist/elements/public/CouponCodesForm/CouponCodesForm.js.map +1 -1
- package/dist/elements/public/CouponCodesForm/types.d.ts +3 -2
- package/dist/elements/public/CouponCodesForm/types.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js +3 -3
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.d.ts +4 -0
- package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js +32 -0
- package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js.map +1 -1
- package/dist/elements/public/GiftCardCard/GiftCardCard.d.ts +26 -0
- package/dist/elements/public/GiftCardCard/GiftCardCard.js +95 -0
- package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -0
- package/dist/elements/public/GiftCardCard/index.d.ts +5 -0
- package/dist/elements/public/GiftCardCard/index.js +7 -0
- package/dist/elements/public/GiftCardCard/index.js.map +1 -0
- package/dist/elements/public/GiftCardCard/types.d.ts +11 -0
- package/dist/elements/public/GiftCardCard/types.js +2 -0
- package/dist/elements/public/GiftCardCard/types.js.map +1 -0
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +55 -0
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +292 -0
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -0
- package/dist/elements/public/GiftCardCodeForm/index.d.ts +10 -0
- package/dist/elements/public/GiftCardCodeForm/index.js +12 -0
- package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -0
- package/dist/elements/public/GiftCardCodeForm/types.d.ts +19 -0
- package/dist/elements/public/GiftCardCodeForm/types.js +2 -0
- package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -0
- package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.d.ts +37 -0
- package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js +259 -0
- package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js.map +1 -0
- package/dist/elements/public/GiftCardCodesForm/index.d.ts +9 -0
- package/dist/elements/public/GiftCardCodesForm/index.js +13 -0
- package/dist/elements/public/GiftCardCodesForm/index.js.map +1 -0
- package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.d.ts +19 -0
- package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js +48 -0
- package/dist/elements/public/GiftCardCodesForm/internal/InternalGiftCardCodesFormListItem.js.map +1 -0
- package/dist/elements/public/GiftCardCodesForm/types.d.ts +17 -0
- package/dist/elements/public/GiftCardCodesForm/types.js +2 -0
- package/dist/elements/public/GiftCardCodesForm/types.js.map +1 -0
- package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +67 -0
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +666 -0
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -0
- package/dist/elements/public/GiftCardForm/currencies.d.ts +1 -0
- package/dist/elements/public/GiftCardForm/currencies.js +173 -0
- package/dist/elements/public/GiftCardForm/currencies.js.map +1 -0
- package/dist/elements/public/GiftCardForm/index.d.ts +18 -0
- package/dist/elements/public/GiftCardForm/index.js +20 -0
- package/dist/elements/public/GiftCardForm/index.js.map +1 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.d.ts +20 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js +99 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPage.js.map +1 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.d.ts +20 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js +52 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItem.js.map +1 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.d.ts +20 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js +53 -0
- package/dist/elements/public/GiftCardForm/private/CategoryRestrictionsPageItemContent.js.map +1 -0
- package/dist/elements/public/GiftCardForm/types.d.ts +28 -0
- package/dist/elements/public/GiftCardForm/types.js +2 -0
- package/dist/elements/public/GiftCardForm/types.js.map +1 -0
- package/dist/elements/public/I18n/format/index.js +2 -0
- package/dist/elements/public/I18n/format/index.js.map +1 -1
- package/dist/elements/public/I18n/format/relative.d.ts +6 -0
- package/dist/elements/public/I18n/format/relative.js +15 -0
- package/dist/elements/public/I18n/format/relative.js.map +1 -0
- package/dist/elements/public/NucleonElement/NucleonElement.js +4 -4
- package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
- package/dist/elements/public/index.d.ts +4 -0
- package/dist/elements/public/index.defined.d.ts +4 -0
- package/dist/elements/public/index.defined.js +4 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +4 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +12 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/dist/utils/parse-duration.d.ts +1 -1
- package/dist/utils/parse-duration.js +7 -3
- package/dist/utils/parse-duration.js.map +1 -1
- package/package.json +2 -2
- package/dist/cdn/shared-0fcdd1c4.js +0 -1
- package/dist/cdn/shared-4fa5f144.js +0 -1
- package/dist/cdn/shared-710ed658.js +0 -134
- package/dist/cdn/shared-800a5471.js +0 -1
- package/dist/cdn/shared-87ca7818.js +0 -1
- package/dist/cdn/shared-c6a4b2d6.js +0 -1
- package/dist/cdn/shared-d9a260f0.js +0 -1
- package/dist/cdn/shared-f875a4f8.js +0 -1
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"back": "Back",
|
|
21
21
|
"backend_developer": "Backend developer",
|
|
22
22
|
"backend_developer_explainer": "Manages server-side code in PHP, Python, Ruby, etc.",
|
|
23
|
+
"balance": "Balance",
|
|
23
24
|
"billing": "Billing",
|
|
24
25
|
"block": "Block",
|
|
25
26
|
"blocklist": "Ban all except",
|
|
@@ -64,6 +65,178 @@
|
|
|
64
65
|
"coupon_entry": "Coupon code",
|
|
65
66
|
"coupon_name_helper_text": "Coupon name is visible to the customers.",
|
|
66
67
|
"create": "Create",
|
|
68
|
+
"currency": "Currency",
|
|
69
|
+
"currency_aed": "United Arab Emirates Dirham",
|
|
70
|
+
"currency_afn": "Afghan Afghani",
|
|
71
|
+
"currency_all": "Albanian Lek",
|
|
72
|
+
"currency_amd": "Armenian Dram",
|
|
73
|
+
"currency_ang": "Netherlands Antillean Guilder",
|
|
74
|
+
"currency_aoa": "Angolan Kwanza",
|
|
75
|
+
"currency_ars": "Argentine Peso",
|
|
76
|
+
"currency_aud": "Australian Dollar",
|
|
77
|
+
"currency_awg": "Aruban Florin",
|
|
78
|
+
"currency_azn": "Azerbaijani Manat",
|
|
79
|
+
"currency_bam": "Bosnia-Herzegovina Convertible Mark",
|
|
80
|
+
"currency_bbd": "Barbadian Dollar",
|
|
81
|
+
"currency_bdt": "Bangladeshi Taka",
|
|
82
|
+
"currency_bgn": "Bulgarian Lev",
|
|
83
|
+
"currency_bhd": "Bahraini Dinar",
|
|
84
|
+
"currency_bif": "Burundian Franc",
|
|
85
|
+
"currency_bmd": "Bermudan Dollar",
|
|
86
|
+
"currency_bnd": "Brunei Dollar",
|
|
87
|
+
"currency_bob": "Bolivian Boliviano",
|
|
88
|
+
"currency_brl": "Brazilian Real",
|
|
89
|
+
"currency_bsd": "Bahamian Dollar",
|
|
90
|
+
"currency_btc": "Bitcoin",
|
|
91
|
+
"currency_btn": "Bhutanese Ngultrum",
|
|
92
|
+
"currency_bwp": "Botswanan Pula",
|
|
93
|
+
"currency_byn": "Belarusian Ruble",
|
|
94
|
+
"currency_bzd": "Belize Dollar",
|
|
95
|
+
"currency_cad": "Canadian Dollar",
|
|
96
|
+
"currency_cdf": "Congolese Franc",
|
|
97
|
+
"currency_chf": "Swiss Franc",
|
|
98
|
+
"currency_clf": "Chilean Unit of Account (UF)",
|
|
99
|
+
"currency_clp": "Chilean Peso",
|
|
100
|
+
"currency_cnh": "Chinese Yuan (Offshore)",
|
|
101
|
+
"currency_cny": "Chinese Yuan",
|
|
102
|
+
"currency_cop": "Colombian Peso",
|
|
103
|
+
"currency_crc": "Costa Rican Colón",
|
|
104
|
+
"currency_cuc": "Cuban Convertible Peso",
|
|
105
|
+
"currency_cup": "Cuban Peso",
|
|
106
|
+
"currency_cve": "Cape Verdean Escudo",
|
|
107
|
+
"currency_czk": "Czech Republic Koruna",
|
|
108
|
+
"currency_djf": "Djiboutian Franc",
|
|
109
|
+
"currency_dkk": "Danish Krone",
|
|
110
|
+
"currency_dop": "Dominican Peso",
|
|
111
|
+
"currency_dzd": "Algerian Dinar",
|
|
112
|
+
"currency_egp": "Egyptian Pound",
|
|
113
|
+
"currency_ern": "Eritrean Nakfa",
|
|
114
|
+
"currency_etb": "Ethiopian Birr",
|
|
115
|
+
"currency_eur": "Euro",
|
|
116
|
+
"currency_fjd": "Fijian Dollar",
|
|
117
|
+
"currency_fkp": "Falkland Islands Pound",
|
|
118
|
+
"currency_gbp": "British Pound Sterling",
|
|
119
|
+
"currency_gel": "Georgian Lari",
|
|
120
|
+
"currency_ggp": "Guernsey Pound",
|
|
121
|
+
"currency_ghs": "Ghanaian Cedi",
|
|
122
|
+
"currency_gip": "Gibraltar Pound",
|
|
123
|
+
"currency_gmd": "Gambian Dalasi",
|
|
124
|
+
"currency_gnf": "Guinean Franc",
|
|
125
|
+
"currency_gtq": "Guatemalan Quetzal",
|
|
126
|
+
"currency_gyd": "Guyanaese Dollar",
|
|
127
|
+
"currency_hkd": "Hong Kong Dollar",
|
|
128
|
+
"currency_hnl": "Honduran Lempira",
|
|
129
|
+
"currency_hrk": "Croatian Kuna",
|
|
130
|
+
"currency_htg": "Haitian Gourde",
|
|
131
|
+
"currency_huf": "Hungarian Forint",
|
|
132
|
+
"currency_idr": "Indonesian Rupiah",
|
|
133
|
+
"currency_ils": "Israeli New Sheqel",
|
|
134
|
+
"currency_imp": "Manx pound",
|
|
135
|
+
"currency_inr": "Indian Rupee",
|
|
136
|
+
"currency_iqd": "Iraqi Dinar",
|
|
137
|
+
"currency_irr": "Iranian Rial",
|
|
138
|
+
"currency_isk": "Icelandic Króna",
|
|
139
|
+
"currency_jep": "Jersey Pound",
|
|
140
|
+
"currency_jmd": "Jamaican Dollar",
|
|
141
|
+
"currency_jod": "Jordanian Dinar",
|
|
142
|
+
"currency_jpy": "Japanese Yen",
|
|
143
|
+
"currency_kes": "Kenyan Shilling",
|
|
144
|
+
"currency_kgs": "Kyrgystani Som",
|
|
145
|
+
"currency_khr": "Cambodian Riel",
|
|
146
|
+
"currency_kmf": "Comorian Franc",
|
|
147
|
+
"currency_kpw": "North Korean Won",
|
|
148
|
+
"currency_krw": "South Korean Won",
|
|
149
|
+
"currency_kwd": "Kuwaiti Dinar",
|
|
150
|
+
"currency_kyd": "Cayman Islands Dollar",
|
|
151
|
+
"currency_kzt": "Kazakhstani Tenge",
|
|
152
|
+
"currency_lak": "Laotian Kip",
|
|
153
|
+
"currency_lbp": "Lebanese Pound",
|
|
154
|
+
"currency_lkr": "Sri Lankan Rupee",
|
|
155
|
+
"currency_lrd": "Liberian Dollar",
|
|
156
|
+
"currency_lsl": "Lesotho Loti",
|
|
157
|
+
"currency_lyd": "Libyan Dinar",
|
|
158
|
+
"currency_mad": "Moroccan Dirham",
|
|
159
|
+
"currency_mdl": "Moldovan Leu",
|
|
160
|
+
"currency_mga": "Malagasy Ariary",
|
|
161
|
+
"currency_mkd": "Macedonian Denar",
|
|
162
|
+
"currency_mmk": "Myanma Kyat",
|
|
163
|
+
"currency_mnt": "Mongolian Tugrik",
|
|
164
|
+
"currency_mop": "Macanese Pataca",
|
|
165
|
+
"currency_mru": "Mauritanian Ouguiya",
|
|
166
|
+
"currency_mur": "Mauritian Rupee",
|
|
167
|
+
"currency_mvr": "Maldivian Rufiyaa",
|
|
168
|
+
"currency_mwk": "Malawian Kwacha",
|
|
169
|
+
"currency_mxn": "Mexican Peso",
|
|
170
|
+
"currency_myr": "Malaysian Ringgit",
|
|
171
|
+
"currency_mzn": "Mozambican Metical",
|
|
172
|
+
"currency_nad": "Namibian Dollar",
|
|
173
|
+
"currency_ngn": "Nigerian Naira",
|
|
174
|
+
"currency_nio": "Nicaraguan Córdoba",
|
|
175
|
+
"currency_nok": "Norwegian Krone",
|
|
176
|
+
"currency_npr": "Nepalese Rupee",
|
|
177
|
+
"currency_nzd": "New Zealand Dollar",
|
|
178
|
+
"currency_omr": "Omani Rial",
|
|
179
|
+
"currency_pab": "Panamanian Balboa",
|
|
180
|
+
"currency_pen": "Peruvian Nuevo Sol",
|
|
181
|
+
"currency_pgk": "Papua New Guinean Kina",
|
|
182
|
+
"currency_php": "Philippine Peso",
|
|
183
|
+
"currency_pkr": "Pakistani Rupee",
|
|
184
|
+
"currency_pln": "Polish Zloty",
|
|
185
|
+
"currency_pyg": "Paraguayan Guarani",
|
|
186
|
+
"currency_qar": "Qatari Rial",
|
|
187
|
+
"currency_ron": "Romanian Leu",
|
|
188
|
+
"currency_rsd": "Serbian Dinar",
|
|
189
|
+
"currency_rub": "Russian Ruble",
|
|
190
|
+
"currency_rwf": "Rwandan Franc",
|
|
191
|
+
"currency_sar": "Saudi Riyal",
|
|
192
|
+
"currency_sbd": "Solomon Islands Dollar",
|
|
193
|
+
"currency_scr": "Seychellois Rupee",
|
|
194
|
+
"currency_sdg": "Sudanese Pound",
|
|
195
|
+
"currency_sek": "Swedish Krona",
|
|
196
|
+
"currency_sgd": "Singapore Dollar",
|
|
197
|
+
"currency_shp": "Saint Helena Pound",
|
|
198
|
+
"currency_sll": "Sierra Leonean Leone",
|
|
199
|
+
"currency_sos": "Somali Shilling",
|
|
200
|
+
"currency_srd": "Surinamese Dollar",
|
|
201
|
+
"currency_ssp": "South Sudanese Pound",
|
|
202
|
+
"currency_std": "São Tomé and Príncipe Dobra (pre-2018)",
|
|
203
|
+
"currency_stn": "São Tomé and Príncipe Dobra",
|
|
204
|
+
"currency_svc": "Salvadoran Colón",
|
|
205
|
+
"currency_syp": "Syrian Pound",
|
|
206
|
+
"currency_szl": "Swazi Lilangeni",
|
|
207
|
+
"currency_thb": "Thai Baht",
|
|
208
|
+
"currency_tjs": "Tajikistani Somoni",
|
|
209
|
+
"currency_tmt": "Turkmenistani Manat",
|
|
210
|
+
"currency_tnd": "Tunisian Dinar",
|
|
211
|
+
"currency_top": "Tongan Pa'anga",
|
|
212
|
+
"currency_try": "Turkish Lira",
|
|
213
|
+
"currency_ttd": "Trinidad and Tobago Dollar",
|
|
214
|
+
"currency_twd": "New Taiwan Dollar",
|
|
215
|
+
"currency_tzs": "Tanzanian Shilling",
|
|
216
|
+
"currency_uah": "Ukrainian Hryvnia",
|
|
217
|
+
"currency_ugx": "Ugandan Shilling",
|
|
218
|
+
"currency_usd": "United States Dollar",
|
|
219
|
+
"currency_uyu": "Uruguayan Peso",
|
|
220
|
+
"currency_uzs": "Uzbekistan Som",
|
|
221
|
+
"currency_vef": "Venezuelan Bolívar Fuerte (Old)",
|
|
222
|
+
"currency_ves": "Venezuelan Bolívar Soberano",
|
|
223
|
+
"currency_vnd": "Vietnamese Dong",
|
|
224
|
+
"currency_vuv": "Vanuatu Vatu",
|
|
225
|
+
"currency_wst": "Samoan Tala",
|
|
226
|
+
"currency_xaf": "CFA Franc BEAC",
|
|
227
|
+
"currency_xag": "Silver Ounce",
|
|
228
|
+
"currency_xau": "Gold Ounce",
|
|
229
|
+
"currency_xcd": "East Caribbean Dollar",
|
|
230
|
+
"currency_xdr": "Special Drawing Rights",
|
|
231
|
+
"currency_xof": "CFA Franc BCEAO",
|
|
232
|
+
"currency_xpd": "Palladium Ounce",
|
|
233
|
+
"currency_xpf": "CFP Franc",
|
|
234
|
+
"currency_xpt": "Platinum Ounce",
|
|
235
|
+
"currency_yer": "Yemeni Rial",
|
|
236
|
+
"currency_zar": "South African Rand",
|
|
237
|
+
"currency_zmw": "Zambian Kwacha",
|
|
238
|
+
"currency_zwl": "Zimbabwean Dollar",
|
|
239
|
+
"current_balance": "Current balance",
|
|
67
240
|
"custom_config": "Custom config",
|
|
68
241
|
"custom_config_helper_text": "If you have any custom values you'd like to make available to your twig template, you can add them here as a valid JSON string.",
|
|
69
242
|
"custom_discount": "Custom discount",
|
|
@@ -109,6 +282,8 @@
|
|
|
109
282
|
"end_subscription_explainer": "Your subscription will remain active until the selected end date. You might have to resubscribe if you decide to resume this subscription later.",
|
|
110
283
|
"error": "Error",
|
|
111
284
|
"expires": "Expires",
|
|
285
|
+
"expires_after": "Expires after",
|
|
286
|
+
"expires_after_value": "Expires {{value, relative}}",
|
|
112
287
|
"field": "Field",
|
|
113
288
|
"field_plural": "Fields",
|
|
114
289
|
"filter": "Filter",
|
|
@@ -135,6 +310,9 @@
|
|
|
135
310
|
"ga_include_on_site_explainer": "Enable Google Analytics on any page where the loader.js file is included.",
|
|
136
311
|
"generate": "Generate",
|
|
137
312
|
"generate_codes_done": "All done! We've added new codes for you.",
|
|
313
|
+
"gift_card_category_restrictions_helper_text": "Select which item categories this gift card can be applied to. If you’d like this gift card to be available to all items regardless of the category, keep your selection empty. All changes are saved automatically.",
|
|
314
|
+
"gift_card_name_helper_text": "Gift card names are displayed to the customer.",
|
|
315
|
+
"gift_card_product_restrictions_explainer": "If you want to limit which products can use this gift card, you can enter full product codes or partial product codes using * as a wild card at the beginning or end of the value. So abc123, fun_*, *-small would match abc123, fun_ and fun_times, and example-small. It wouldn't match abc12, abc1234, fun, or good-smalls.",
|
|
138
316
|
"hidden": "Hidden",
|
|
139
317
|
"hidden_codes_explainer": "We’ve hidden some of your codes because there were too many of them. Don’t worry – we’ll import them anyway.",
|
|
140
318
|
"hidden_codes_header": "{{count}} code is hidden",
|
|
@@ -180,6 +358,7 @@
|
|
|
180
358
|
"multiple_codes_allowed": "Allow multiple codes per customer",
|
|
181
359
|
"multiple_codes_allowed_explainer": "Let customers apply this coupon multiple times to the same order.",
|
|
182
360
|
"name": "Name",
|
|
361
|
+
"never_expires": "Never expires",
|
|
183
362
|
"new_password": "New password",
|
|
184
363
|
"new_password_format_error": "The new password you've chosen is too weak. Please enter a secure new password.",
|
|
185
364
|
"new_password_required_error": "To keep your account secure, please change your password before logging in this time.",
|
|
@@ -359,6 +538,7 @@
|
|
|
359
538
|
"uses_to_total_count": "{{count}}/{{total}} uses",
|
|
360
539
|
"v8n_format_error": "Invalid format",
|
|
361
540
|
"v8n_invalid_email": "Invalid email",
|
|
541
|
+
"v8n_negative": "Negative values are not allowed",
|
|
362
542
|
"v8n_required": "Required",
|
|
363
543
|
"v8n_too_long": "Too long",
|
|
364
544
|
"value": "Value",
|
|
@@ -86,6 +86,7 @@ export class EditableList extends TranslatableMixin(ConfigurableMixin(ThemeableM
|
|
|
86
86
|
?disabled=${this.disabled}
|
|
87
87
|
?readonly=${this.readonly}
|
|
88
88
|
@keydown=${(evt) => evt.key === 'Enter' && addItem()}
|
|
89
|
+
@change=${(evt) => evt.stopPropagation()}
|
|
89
90
|
@input=${(evt) => {
|
|
90
91
|
this.__newItem = evt.currentTarget.value.trim();
|
|
91
92
|
}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableList.js","sourceRoot":"","sources":["../../../../src/elements/private/EditableList/EditableList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAAlG;;QAUE,YAAO,GAAwC,EAAE,CAAC;QAElD,UAAK,GAAyD,EAAE,CAAC;QAEzD,cAAS,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"EditableList.js","sourceRoot":"","sources":["../../../../src/elements/private/EditableList/EditableList.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { live } from 'lit-html/directives/live';\nimport { repeat } from 'lit-html/directives/repeat';\n\nexport class EditableList extends TranslatableMixin(ConfigurableMixin(ThemeableMixin(LitElement))) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n items: { type: Array },\n __newItem: { attribute: false },\n };\n }\n\n options: { label?: string; value: string }[] = [];\n\n items: { label?: string | TemplateResult; value: string }[] = [];\n\n private __newItem = '';\n\n render(): TemplateResult {\n const deleteButtonClass = classMap({\n 'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n });\n\n const itemClass = classMap({\n 'transition-colors h-l ml-m flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n if (!this.__newItem) return;\n this.items.push({ value: this.__newItem });\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n this.__newItem = '';\n };\n\n return html`\n <slot></slot>\n\n <ol class=\"divide-y divide-contrast-10\">\n ${repeat(\n this.items,\n item => item.value,\n (item, index) => {\n return html`\n <li class=${itemClass}>\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this.items.splice(index, 1);\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n class=${classMap({\n 'ml-m h-l flex items-center': true,\n 'border-t border-contrast-10': this.items.length > 0,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n })}\n >\n <input\n placeholder=${this.t('type_here')}\n class=\"w-full bg-transparent appearance-none h-m focus-outline-none\"\n list=\"list\"\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n />\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this.items.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}\">\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,\n 'flex items-center justify-center rounded-full transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import '@vaadin/vaadin-combo-box';
|
|
2
1
|
import '@vaadin/vaadin-text-field/vaadin-integer-field';
|
|
2
|
+
import '@vaadin/vaadin-custom-field';
|
|
3
|
+
import '@vaadin/vaadin-combo-box';
|
|
3
4
|
import '../../public/I18n/index';
|
|
4
5
|
import { CSSResult, CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
5
6
|
export declare class FrequencyInput extends LitElement {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import '@vaadin/vaadin-combo-box';
|
|
2
1
|
import '@vaadin/vaadin-text-field/vaadin-integer-field';
|
|
2
|
+
import '@vaadin/vaadin-custom-field';
|
|
3
|
+
import '@vaadin/vaadin-combo-box';
|
|
3
4
|
import "../../public/I18n/index.js";
|
|
4
5
|
import { LitElement, css, html, } from 'lit-element';
|
|
5
6
|
import { FrequencyInputChangeEvent } from "./FrequencyInputChangeEvent.js";
|
|
@@ -51,6 +52,7 @@ vaadin-custom-field{
|
|
|
51
52
|
width:100%;
|
|
52
53
|
font-size:0;
|
|
53
54
|
line-height:0;
|
|
55
|
+
padding-top:0 !important;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
vaadin-custom-field::part(label){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrequencyInput.js","sourceRoot":"","sources":["../../../../src/elements/private/FrequencyInput/FrequencyInput.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FrequencyInput.js","sourceRoot":"","sources":["../../../../src/elements/private/FrequencyInput/FrequencyInput.ts"],"names":[],"mappings":"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","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '@vaadin/vaadin-custom-field';\nimport '@vaadin/vaadin-combo-box';\nimport '../../public/I18n/index';\n\nimport {\n CSSResult,\n CSSResultArray,\n LitElement,\n PropertyDeclarations,\n TemplateResult,\n css,\n html,\n} from 'lit-element';\nimport type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\n\nimport { FrequencyInputChangeEvent } from './FrequencyInputChangeEvent';\nimport { live } from '@open-wc/lit-helpers';\nimport memoize from 'lodash-es/memoize';\nimport { parseDuration } from '../../../utils/parse-duration';\n\nexport class FrequencyInput extends LitElement {\n static get properties(): PropertyDeclarations {\n return {\n checkValidity: { attribute: false },\n errorMessage: { type: String, attribute: 'error-message' },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n label: { type: String },\n value: { type: String },\n lang: { type: String },\n };\n }\n\n static get styles(): CSSResult | CSSResultArray {\n return css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `;\n }\n\n label = '';\n\n value = '';\n\n disabled = false;\n\n readonly = false;\n\n errorMessage = '';\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const { count, units } = parseDuration(value);\n return [count.toString(), units];\n },\n };\n\n private __getItems = memoize((value: string) => {\n const count = parseDuration(value).count;\n\n return [\n { value: 'd', label: this.__t('day', { count }) },\n { value: 'w', label: this.__t('week', { count }) },\n { value: 'm', label: this.__t('month', { count }) },\n { value: 'y', label: this.__t('year', { count }) },\n ];\n });\n\n private __untrackTranslations?: () => void;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__untrackTranslations = customElements.get('foxy-i18n').onTranslationChange(() => {\n this.__getItems.cache.clear?.();\n this.requestUpdate();\n });\n }\n\n render(): TemplateResult {\n return html`\n <vaadin-custom-field\n data-testid=\"field\"\n .i18n=${this.__i18n}\n .label=${this.label}\n .value=${live(this.value)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .errorMessage=${this.errorMessage}\n .checkValidity=${this.checkValidity}\n @change=${this.__handleChange}\n >\n <vaadin-integer-field\n data-testid=\"value\"\n min=\"1\"\n max=\"999\"\n has-controls\n prevent-invalid-input\n ?invalid=${!this.checkValidity()}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n data-testid=\"units\"\n item-value-path=\"value\"\n item-label-path=\"label\"\n .items=${this.__getItems(this.value)}\n ?invalid=${!this.checkValidity()}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.firstElementChild as CustomFieldElement;\n if (field.value !== this.value) field.value = this.value;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__untrackTranslations?.();\n }\n\n checkValidity(): boolean {\n return true;\n }\n\n private get __t() {\n return customElements.get('foxy-i18n').i18next.getFixedT(this.lang);\n }\n\n private __handleChange(evt: CustomEvent<void>) {\n const field = evt.target as CustomFieldElement;\n this.value = field.value as string;\n this.dispatchEvent(new FrequencyInputChangeEvent(this.value));\n }\n}\n"]}
|
|
@@ -94,13 +94,14 @@ export class CollectionPage extends ConfigurableMixin(NucleonElement) {
|
|
|
94
94
|
else if (this.in({ idle: 'template' }) || this.__items.length === 0) {
|
|
95
95
|
items.push({ key: 'empty', href: '', data: null });
|
|
96
96
|
}
|
|
97
|
-
return html `${repeat(items, item => item.key, item => { var _a; return (_a = this.__renderItem) === null || _a === void 0 ? void 0 : _a.call(this, {
|
|
97
|
+
return html `${repeat(items, item => item.key, (item, index) => { var _a, _b, _c, _d, _e; return (_a = this.__renderItem) === null || _a === void 0 ? void 0 : _a.call(this, {
|
|
98
98
|
disabledControls: this.disabledControls,
|
|
99
99
|
readonlyControls: this.readonlyControls,
|
|
100
100
|
hiddenControls: this.hiddenControls,
|
|
101
101
|
templates: this.templates,
|
|
102
102
|
disabled: this.disabled,
|
|
103
103
|
readonly: this.readonly,
|
|
104
|
+
previous: (_c = (_b = items[index - 1]) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : null,
|
|
104
105
|
hidden: this.hidden,
|
|
105
106
|
parent: this.href,
|
|
106
107
|
spread: spread,
|
|
@@ -109,6 +110,7 @@ export class CollectionPage extends ConfigurableMixin(NucleonElement) {
|
|
|
109
110
|
lang: this.lang,
|
|
110
111
|
data: item.data,
|
|
111
112
|
href: item.href,
|
|
113
|
+
next: (_e = (_d = items[index + 1]) === null || _d === void 0 ? void 0 : _d.data) !== null && _e !== void 0 ? _e : null,
|
|
112
114
|
ns: this.ns,
|
|
113
115
|
html,
|
|
114
116
|
}); })}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionPage.js","sourceRoot":"","sources":["../../../../src/elements/public/CollectionPage/CollectionPage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CollectionPage.js","sourceRoot":"","sources":["../../../../src/elements/public/CollectionPage/CollectionPage.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExtractItem, ItemRenderer, Page } from './types';\nimport { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { spread } from '@open-wc/lit-helpers';\n\n/**\n * Renders an element for each resource in a collection page.\n *\n * @element foxy-collection-page\n * @since 1.1.0\n */\nexport class CollectionPage<TPage extends Page> extends ConfigurableMixin(NucleonElement)<TPage> {\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n props: { type: Object },\n item: { type: String },\n ns: { type: String },\n };\n }\n\n /** Spread directive argument from `@open-wc/lit-helpers` (properties, event listeners and attributes you'd like to pass to the item element). */\n props: Record<string, unknown> = {};\n\n ns = '';\n\n private __pageFetchEventHandler = (evt: unknown) => this.__handlePageFetchEvent(evt);\n\n private __renderItem!: ItemRenderer<ExtractItem<TPage>>;\n\n private __item!: string | ItemRenderer<ExtractItem<TPage>>;\n\n constructor() {\n super();\n this.item = 'foxy-null';\n }\n\n /**\n * Custom element tag or a render function to use for displaying collection items.\n * Generated custom elements will have the following attributes:\n *\n * - `parent` – same as `foxy-collection-page[href]`;\n * - `group` - same as `foxy-collection-page[group]`;\n * - `href` – collection page item's `_links.self.href` value;\n * - `lang` – same as `foxy-collection-page[lang]`;\n *\n * Render function will receive `ItemRendererContext` in the first argument.\n */\n get item(): string | ItemRenderer<ExtractItem<TPage>> {\n return this.__item;\n }\n\n set item(value: string | ItemRenderer<ExtractItem<TPage>>) {\n if (typeof value === 'string') {\n this.__renderItem = new Function(\n 'ctx',\n `return ctx.html\\`\n <${value}\n disabledcontrols=\\${ctx.disabledControls.toString()}\n readonlycontrols=\\${ctx.readonlyControls.toString()}\n hiddencontrols=\\${ctx.hiddenControls.toString()}\n data-testclass=\"items\"\n parent=\\${ctx.parent}\n group=\\${ctx.group}\n href=\\${ctx.href}\n lang=\\${ctx.lang}\n ns=\"\\${ctx.ns} $\\{customElements.get('${value}')?.defaultNS ?? ''}\"\n ?disabled=\\${ctx.disabled}\n ?readonly=\\${ctx.readonly}\n ?hidden=\\${ctx.hidden}\n .templates=\\${ctx.templates}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${value}>\\``\n ) as ItemRenderer;\n } else {\n this.__renderItem = value;\n }\n\n this.__item = value;\n this.requestUpdate();\n }\n\n /** @readonly */\n createRenderRoot(): HTMLElement {\n return this;\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('fetch', this.__pageFetchEventHandler);\n }\n\n /** @readonly */\n render(): TemplateResult {\n type RepeatItem = { key: string; href: string; data: ExtractItem<TPage> | null };\n const items: RepeatItem[] = this.__items.map(item => ({\n key: item._links.self.href,\n href: item._links.self.href,\n data: item,\n }));\n\n if (this.in('busy')) {\n items.push({ key: 'stalled', href: 'foxy://collection-page/stall', data: null });\n } else if (this.in('fail')) {\n items.push({ key: 'failed', href: 'foxy://collection-page/fail', data: null });\n } else if (this.in({ idle: 'template' }) || this.__items.length === 0) {\n items.push({ key: 'empty', href: '', data: null });\n }\n\n return html`${repeat(\n items,\n item => item.key,\n (item, index) =>\n this.__renderItem?.({\n disabledControls: this.disabledControls,\n readonlyControls: this.readonlyControls,\n hiddenControls: this.hiddenControls,\n templates: this.templates,\n disabled: this.disabled,\n readonly: this.readonly,\n previous: items[index - 1]?.data ?? null,\n hidden: this.hidden,\n parent: this.href,\n spread: spread,\n props: this.props,\n group: this.group,\n lang: this.lang,\n data: item.data,\n href: item.href,\n next: items[index + 1]?.data ?? null,\n ns: this.ns,\n html,\n })\n )}`;\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('fetch', this.__pageFetchEventHandler);\n }\n\n private get __items(): ExtractItem<TPage>[] {\n return Array.from(Object.values(this.form?._embedded ?? {}) as any[]).reduce(\n (p, c) => [...p, ...c],\n [] as ExtractItem<TPage>[]\n );\n }\n\n private __handlePageFetchEvent(event: unknown) {\n if (!(event instanceof FetchEvent) || event.target === this) return;\n const { method, url } = event.request;\n\n if (method !== 'GET') return;\n if (url === 'foxy://collection-page/stall') return this.__stallRequest(event);\n if (url === 'foxy://collection-page/fail') return this.__failRequest(event);\n }\n\n private __stallRequest(event: FetchEvent) {\n event.stopImmediatePropagation();\n event.respondWith(new Promise(() => void 0));\n }\n\n private __failRequest(event: FetchEvent) {\n event.stopImmediatePropagation();\n event.respondWith(Promise.resolve(new Response(null, { status: 500 })));\n }\n}\n\nexport * from './types';\n"]}
|
|
@@ -16,6 +16,7 @@ export declare type ItemRendererContext<TItem extends HALJSONResource = HALJSONR
|
|
|
16
16
|
templates: Partial<Record<string, Renderer<any>>>;
|
|
17
17
|
readonly: boolean;
|
|
18
18
|
disabled: boolean;
|
|
19
|
+
previous: TItem | null;
|
|
19
20
|
hidden: boolean;
|
|
20
21
|
parent: string;
|
|
21
22
|
spread: typeof spread;
|
|
@@ -25,6 +26,7 @@ export declare type ItemRendererContext<TItem extends HALJSONResource = HALJSONR
|
|
|
25
26
|
lang: string;
|
|
26
27
|
href: string;
|
|
27
28
|
data: TItem | null;
|
|
29
|
+
next: TItem | null;
|
|
28
30
|
ns: string;
|
|
29
31
|
};
|
|
30
32
|
export declare type ItemRenderer<TItem extends HALJSONResource = HALJSONResource> = (ctx: ItemRendererContext<TItem>) => TemplateResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CollectionPage/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { HALJSONResource } from '../NucleonElement/types';\nimport { Renderer } from '../../../mixins/configurable';\nimport { spread } from '@open-wc/lit-helpers';\n\nexport type Page = HALJSONResource & { _embedded: Record<string, HALJSONResource[]> };\nexport type ExtractItem<T> = T extends { _embedded: Record<string, (infer U)[]> } ? U : never;\n\nexport type ItemRendererContext<TItem extends HALJSONResource = HALJSONResource> = {\n readonlyControls: BooleanSelector;\n disabledControls: BooleanSelector;\n hiddenControls: BooleanSelector;\n templates: Partial<Record<string, Renderer<any>>>;\n readonly: boolean;\n disabled: boolean;\n hidden: boolean;\n parent: string;\n spread: typeof spread;\n props: Record<string, unknown>;\n group: string;\n html: typeof html;\n lang: string;\n href: string;\n data: TItem | null;\n ns: string;\n};\n\nexport type ItemRenderer<TItem extends HALJSONResource = HALJSONResource> = (\n ctx: ItemRendererContext<TItem>\n) => TemplateResult;\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/CollectionPage/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { HALJSONResource } from '../NucleonElement/types';\nimport { Renderer } from '../../../mixins/configurable';\nimport { spread } from '@open-wc/lit-helpers';\n\nexport type Page = HALJSONResource & { _embedded: Record<string, HALJSONResource[]> };\nexport type ExtractItem<T> = T extends { _embedded: Record<string, (infer U)[]> } ? U : never;\n\nexport type ItemRendererContext<TItem extends HALJSONResource = HALJSONResource> = {\n readonlyControls: BooleanSelector;\n disabledControls: BooleanSelector;\n hiddenControls: BooleanSelector;\n templates: Partial<Record<string, Renderer<any>>>;\n readonly: boolean;\n disabled: boolean;\n previous: TItem | null;\n hidden: boolean;\n parent: string;\n spread: typeof spread;\n props: Record<string, unknown>;\n group: string;\n html: typeof html;\n lang: string;\n href: string;\n data: TItem | null;\n next: TItem | null;\n ns: string;\n};\n\nexport type ItemRenderer<TItem extends HALJSONResource = HALJSONResource> = (\n ctx: ItemRendererContext<TItem>\n) => TemplateResult;\n"]}
|
|
@@ -58,15 +58,15 @@ export class CouponCard extends Base {
|
|
|
58
58
|
`;
|
|
59
59
|
}
|
|
60
60
|
__renderTitle() {
|
|
61
|
-
var _a, _b, _c, _d, _e;
|
|
61
|
+
var _a, _b, _c, _d, _e, _f;
|
|
62
62
|
const count = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.number_of_uses_to_date) !== null && _b !== void 0 ? _b : 0;
|
|
63
63
|
const total = (_d = (_c = this.data) === null || _c === void 0 ? void 0 : _c.number_of_uses_allowed) !== null && _d !== void 0 ? _d : 0;
|
|
64
64
|
return html `
|
|
65
|
-
<div>
|
|
65
|
+
<div data-testid="title">
|
|
66
66
|
${this.renderTemplateOrSlot('title:before')}
|
|
67
67
|
|
|
68
68
|
<div class="flex items-center justify-between">
|
|
69
|
-
<div class="font-semibold truncate">${(_e = this.data) === null || _e === void 0 ? void 0 : _e.name}</div>
|
|
69
|
+
<div class="font-semibold truncate">${(_f = (_e = this.data) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : html `​`}</div>
|
|
70
70
|
|
|
71
71
|
<foxy-i18n
|
|
72
72
|
options=${JSON.stringify({ count, total })}
|
|
@@ -98,7 +98,7 @@ export class CouponCard extends Base {
|
|
|
98
98
|
`;
|
|
99
99
|
}
|
|
100
100
|
return html `
|
|
101
|
-
<div>
|
|
101
|
+
<div data-testid="description">
|
|
102
102
|
${this.renderTemplateOrSlot('description:before')}
|
|
103
103
|
<div class="truncate text-s text-secondary">${summary !== null && summary !== void 0 ? summary : html `​`}</div>
|
|
104
104
|
${this.renderTemplateOrSlot('description:after')}
|
|
@@ -110,7 +110,7 @@ export class CouponCard extends Base {
|
|
|
110
110
|
const { start_date: start, end_date: end } = (_a = this.data) !== null && _a !== void 0 ? _a : {};
|
|
111
111
|
const type = start && end ? 'complete' : start ? 'from' : end ? 'until' : 'any';
|
|
112
112
|
return html `
|
|
113
|
-
<div>
|
|
113
|
+
<div data-testid="status">
|
|
114
114
|
${this.renderTemplateOrSlot('status:before')}
|
|
115
115
|
|
|
116
116
|
<foxy-i18n
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CouponCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponCard/CouponCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAClE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,EAAE,GAAG,aAAa,CAAC;AACzB,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAU;IAA1C;;QACE,cAAS,GAAc,EAAE,CAAC;IA8G5B,CAAC;IA5GC,MAAM;;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;;;qBAId,QAAQ,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1E,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;YACjE,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7E,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;;;;kBAI7D,QAAQ,CAAC;YACf,8DAA8D,EAAE,IAAI;YACpE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SACzB,CAAC;;;;oBAIQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;mBAE7E,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;IAEO,aAAa;;QACnB,MAAM,KAAK,eAAG,IAAI,CAAC,IAAI,0CAAE,sBAAsB,mCAAI,CAAC,CAAC;QACrD,MAAM,KAAK,eAAG,IAAI,CAAC,IAAI,0CAAE,sBAAsB,mCAAI,CAAC,CAAC;QAErD,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;gDAGH,
|
|
1
|
+
{"version":3,"file":"CouponCard.js","sourceRoot":"","sources":["../../../../src/elements/public/CouponCard/CouponCard.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 = 'coupon-card';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Basic card displaying a coupon.\n *\n * @slot title:before\n * @slot title:after\n * @slot description:before\n * @slot description:after\n * @slot status:before\n * @slot status:after\n *\n * @element foxy-coupon-card\n * @since 1.15.0\n */\nexport class CouponCard 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 class=${classMap({ 'transition-opacity': true, 'opacity-0': !this.data })}>\n ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle()}\n ${hiddenSelector.matches('description', true) ? '' : this.__renderDescription()}\n ${hiddenSelector.matches('status', true) ? '' : this.__renderStatus()}\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 __renderTitle() {\n const count = this.data?.number_of_uses_to_date ?? 0;\n const total = this.data?.number_of_uses_allowed ?? 0;\n\n return html`\n <div data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n\n <div class=\"flex items-center justify-between\">\n <div class=\"font-semibold truncate\">${this.data?.name ?? html`​`}</div>\n\n <foxy-i18n\n options=${JSON.stringify({ count, total })}\n class=\"text-tertiary text-s flex-shrink-0\"\n lang=${this.lang}\n key=${total === 0 ? 'uses_count' : 'uses_to_total_count'}\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n }\n\n private __renderDescription() {\n let summary: TemplateResult | null = null;\n\n if (this.data) {\n const details = this.data.coupon_discount_details;\n const type = this.data.coupon_discount_type;\n\n summary = html`\n <foxy-i18n\n options=${JSON.stringify({ params: { details, type } })}\n lang=${this.lang}\n key=\"discount_summary\"\n ns=${this.ns}\n >\n </foxy-i18n>\n `;\n }\n\n return html`\n <div data-testid=\"description\">\n ${this.renderTemplateOrSlot('description:before')}\n <div class=\"truncate text-s text-secondary\">${summary ?? html`​`}</div>\n ${this.renderTemplateOrSlot('description:after')}\n </div>\n `;\n }\n\n private __renderStatus() {\n const { start_date: start, end_date: end } = this.data ?? {};\n const type = start && end ? 'complete' : start ? 'from' : end ? 'until' : 'any';\n\n return html`\n <div data-testid=\"status\">\n ${this.renderTemplateOrSlot('status:before')}\n\n <foxy-i18n\n options=${JSON.stringify({ start, end })}\n class=\"block truncate text-s text-tertiary\"\n lang=${this.lang}\n key=\"date_range_${type}\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('status:after')}\n </div>\n `;\n }\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { Data, Templates } from './types';
|
|
|
2
2
|
import { ScopedElementsMap } from '@open-wc/scoped-elements';
|
|
3
3
|
import { TemplateResult } from 'lit-html';
|
|
4
4
|
import { NucleonElement } from '../NucleonElement/NucleonElement';
|
|
5
|
+
import { NucleonV8N } from '../NucleonElement/types';
|
|
5
6
|
declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
6
7
|
defaultNS: string;
|
|
7
8
|
} & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/src/types").ScopedElementsHost> & {
|
|
@@ -21,6 +22,7 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class CouponCodesForm extends Base<Data> {
|
|
23
24
|
static get scopedElements(): ScopedElementsMap;
|
|
25
|
+
static get v8n(): NucleonV8N<Data>;
|
|
24
26
|
templates: Templates;
|
|
25
27
|
render(): TemplateResult;
|
|
26
28
|
private __renderCodes;
|
|
@@ -37,6 +37,9 @@ export class CouponCodesForm extends Base {
|
|
|
37
37
|
'x-group': Group,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
static get v8n() {
|
|
41
|
+
return [({ coupon_codes: v }) => (v && v.length > 0) || 'coupon_codes_required'];
|
|
42
|
+
}
|
|
40
43
|
render() {
|
|
41
44
|
var _a, _b;
|
|
42
45
|
const { hiddenSelector, lang, ns } = this;
|
|
@@ -188,6 +191,9 @@ export class CouponCodesForm extends Base {
|
|
|
188
191
|
`;
|
|
189
192
|
}
|
|
190
193
|
__renderImport() {
|
|
194
|
+
const isTemplateValid = this.in({ idle: { template: { dirty: 'valid' } } });
|
|
195
|
+
const isSnapshotValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });
|
|
196
|
+
const isValid = isTemplateValid || isSnapshotValid;
|
|
191
197
|
return html `
|
|
192
198
|
<div>
|
|
193
199
|
${this.renderTemplateOrSlot('import:before')}
|
|
@@ -195,7 +201,7 @@ export class CouponCodesForm extends Base {
|
|
|
195
201
|
<vaadin-button
|
|
196
202
|
class="w-full mb-xs"
|
|
197
203
|
theme="primary success"
|
|
198
|
-
?disabled=${!this.in('idle') || this.disabledSelector.matches('import', true)}
|
|
204
|
+
?disabled=${!isValid || !this.in('idle') || this.disabledSelector.matches('import', true)}
|
|
199
205
|
@click=${this.submit}
|
|
200
206
|
>
|
|
201
207
|
<foxy-i18n ns=${this.ns} key="import" lang=${this.lang}></foxy-i18n>
|