@foxy.io/elements 1.42.0 → 1.43.0-beta.2
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 +1 -1
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-admin-subscription-form.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-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-billing-address-card.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +2 -2
- package/dist/cdn/foxy-client-card.js +1 -1
- package/dist/cdn/foxy-client-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-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-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-detail-card.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-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-downloadable-card.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +2 -2
- package/dist/cdn/foxy-email-template-card.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-experimental-add-to-cart-builder.js +1 -1
- package/dist/cdn/foxy-filter-attribute-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.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 -1
- package/dist/cdn/foxy-gift-card-code-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +1 -1
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-card-embed.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-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +6 -6
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-container-card.js +1 -1
- package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-shipping-service-card.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-store-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-subscription-settings-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-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +1 -1
- package/dist/cdn/foxy-update-payment-method-form.js +1 -1
- package/dist/cdn/foxy-user-card.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-user-invitation-card.js +1 -1
- package/dist/cdn/foxy-user-invitation-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-3a2134c8.js → shared-0224f0b8.js} +1 -1
- package/dist/cdn/{shared-4d919766.js → shared-0d0585dc.js} +1 -1
- package/dist/cdn/{shared-f79f08cc.js → shared-1cd02e50.js} +1 -1
- package/dist/cdn/shared-210abb90.js +64 -0
- package/dist/cdn/{shared-3cdec25d.js → shared-264e8301.js} +1 -1
- package/dist/cdn/{shared-0c242246.js → shared-274dec57.js} +1 -1
- package/dist/cdn/{shared-5a04e75c.js → shared-2828fcbf.js} +1 -1
- package/dist/cdn/{shared-330e57d9.js → shared-2cb397e4.js} +1 -1
- package/dist/cdn/{shared-1d03f911.js → shared-2f5cc0e2.js} +1 -1
- package/dist/cdn/{shared-8e010314.js → shared-2f8e53c0.js} +1 -1
- package/dist/cdn/{shared-98f382f3.js → shared-41208627.js} +1 -1
- package/dist/cdn/{shared-4bd1f3d8.js → shared-44b46fef.js} +1 -1
- package/dist/cdn/{shared-ae2336ab.js → shared-4b393539.js} +1 -1
- package/dist/cdn/{shared-35c9fa1d.js → shared-4c764a91.js} +1 -1
- package/dist/cdn/{shared-692691ca.js → shared-4cafa2e7.js} +1 -1
- package/dist/cdn/{shared-7eeb591f.js → shared-4dd24dda.js} +1 -1
- package/dist/cdn/{shared-d8694661.js → shared-567ba8ae.js} +1 -1
- package/dist/cdn/{shared-5d7c4673.js → shared-5f8c01f8.js} +1 -1
- package/dist/cdn/{shared-a60ca6fe.js → shared-6033e09d.js} +1 -1
- package/dist/cdn/{shared-3aca4932.js → shared-656a46f7.js} +1 -1
- package/dist/cdn/{shared-948919d2.js → shared-66201dc5.js} +1 -1
- package/dist/cdn/{shared-b05ef317.js → shared-678beccf.js} +3 -3
- package/dist/cdn/{shared-0cc8df04.js → shared-6962f117.js} +1 -1
- package/dist/cdn/{shared-ceeb14e9.js → shared-6b3fed56.js} +1 -1
- package/dist/cdn/{shared-753fdd34.js → shared-70e6f32c.js} +1 -1
- package/dist/cdn/{shared-cae254ee.js → shared-74d599dc.js} +1 -1
- package/dist/cdn/{shared-2b126cea.js → shared-7fd51889.js} +3 -3
- package/dist/cdn/shared-87b93771.js +1 -0
- package/dist/cdn/shared-894c69f8.js +1 -0
- package/dist/cdn/{shared-8c42634c.js → shared-89d4000a.js} +1 -1
- package/dist/cdn/{shared-e615d2d9.js → shared-8a0bd046.js} +1 -1
- package/dist/cdn/{shared-1aff90a9.js → shared-8ea2bbcc.js} +1 -1
- package/dist/cdn/{shared-d3d4badd.js → shared-8f009bbb.js} +1 -1
- package/dist/cdn/{shared-434cdfec.js → shared-9171c265.js} +1 -1
- package/dist/cdn/{shared-9d4813e6.js → shared-9342ca50.js} +1 -1
- package/dist/cdn/{shared-4cae017c.js → shared-94716ec1.js} +1 -1
- package/dist/cdn/{shared-40028e80.js → shared-97e2abfb.js} +1 -1
- package/dist/cdn/{shared-c584966f.js → shared-9b9d5ff1.js} +1 -1
- package/dist/cdn/{shared-58b6710c.js → shared-9c010e0a.js} +1 -1
- package/dist/cdn/{shared-5520b96c.js → shared-9dc36194.js} +1 -1
- package/dist/cdn/{shared-d743d0fd.js → shared-a4216b50.js} +1 -1
- package/dist/cdn/{shared-4f808d2e.js → shared-a507d54f.js} +4 -4
- package/dist/cdn/{shared-c5b019e5.js → shared-a6c75cc0.js} +1 -1
- package/dist/cdn/{shared-e1400289.js → shared-aa6dab90.js} +2 -2
- package/dist/cdn/{shared-7977d581.js → shared-ad60e8d1.js} +2 -2
- package/dist/cdn/{shared-393a7ab2.js → shared-b1435a0a.js} +1 -1
- package/dist/cdn/{shared-c009b9b6.js → shared-bb6d7b97.js} +1 -1
- package/dist/cdn/{shared-0cfb1c08.js → shared-bedc5e82.js} +1 -1
- package/dist/cdn/{shared-53253d60.js → shared-c31c50e2.js} +1 -1
- package/dist/cdn/{shared-2fe8aabd.js → shared-c502de27.js} +1 -1
- package/dist/cdn/{shared-92995c02.js → shared-c832f3a1.js} +1 -1
- package/dist/cdn/{shared-cf008f13.js → shared-cae7a43b.js} +1 -1
- package/dist/cdn/{shared-ec9893c7.js → shared-cc4b3b42.js} +1 -1
- package/dist/cdn/{shared-6f08d218.js → shared-d68c6616.js} +1 -1
- package/dist/cdn/{shared-b1c9199f.js → shared-d7d949bc.js} +1 -1
- package/dist/cdn/{shared-1b46df2a.js → shared-dc4d2996.js} +1 -1
- package/dist/cdn/shared-dd303282.js +1 -0
- package/dist/cdn/{shared-c231e3bf.js → shared-e2d3c014.js} +1 -1
- package/dist/cdn/{shared-241b6cca.js → shared-e6a1eef8.js} +1 -1
- package/dist/cdn/{shared-86337ba8.js → shared-e88763ec.js} +1 -1
- package/dist/cdn/{shared-2939f350.js → shared-f7bfb29e.js} +2 -2
- package/dist/cdn/{shared-0553380e.js → shared-fed829c2.js} +1 -1
- package/dist/cdn/{shared-8f81f4ed.js → shared-ffd5932d.js} +1 -1
- package/dist/cdn/translations/experimental-add-to-cart-builder/en.json +3 -1
- package/dist/cdn/translations/item-category-form/en.json +3 -0
- package/dist/cdn/translations/store-form/en.json +7 -0
- package/dist/cdn/translations/tax-card/en.json +3 -0
- package/dist/cdn/translations/tax-form/en.json +23 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +13 -5
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -1
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js +11 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/index.js.map +1 -1
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +2 -1
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
- package/dist/elements/public/Donation/Donation.d.ts +10 -0
- package/dist/elements/public/Donation/Donation.js +2 -0
- package/dist/elements/public/Donation/Donation.js.map +1 -1
- package/dist/elements/public/ExperimentalAddToCartBuilder/ExperimentalAddToCartBuilder.js +78 -55
- package/dist/elements/public/ExperimentalAddToCartBuilder/ExperimentalAddToCartBuilder.js.map +1 -1
- package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +2 -0
- package/dist/elements/public/QueryBuilder/QueryBuilder.js +4 -1
- package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Input.d.ts +1 -0
- package/dist/elements/public/QueryBuilder/components/Input.js +14 -3
- package/dist/elements/public/QueryBuilder/components/Input.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/RangeValue.js +2 -0
- package/dist/elements/public/QueryBuilder/components/RangeValue.js.map +1 -1
- package/dist/elements/public/StoreForm/StoreForm.d.ts +3 -0
- package/dist/elements/public/StoreForm/StoreForm.js +21 -0
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
- package/dist/elements/public/TaxCard/TaxCard.d.ts +5 -4
- package/dist/elements/public/TaxCard/TaxCard.js +54 -8
- package/dist/elements/public/TaxCard/TaxCard.js.map +1 -1
- package/dist/elements/public/TaxCard/index.d.ts +2 -2
- package/dist/elements/public/TaxCard/index.js +2 -2
- package/dist/elements/public/TaxCard/index.js.map +1 -1
- package/dist/elements/public/TaxForm/TaxForm.d.ts +2 -0
- package/dist/elements/public/TaxForm/TaxForm.js +26 -6
- package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
- package/dist/elements/public/TaxForm/index.d.ts +2 -0
- package/dist/elements/public/TaxForm/index.js +2 -0
- package/dist/elements/public/TaxForm/index.js.map +1 -1
- package/dist/mixins/themeable.js +4 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-0f4dfb14.js +0 -1
- package/dist/cdn/shared-46f8e3d9.js +0 -1
- package/dist/cdn/shared-578cde14.js +0 -1
- package/dist/cdn/shared-b6c5ac14.js +0 -64
|
@@ -14,6 +14,16 @@ import hljs from 'highlight.js/lib/core.js';
|
|
|
14
14
|
const NS = 'experimental-add-to-cart-builder';
|
|
15
15
|
const Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));
|
|
16
16
|
hljs.registerLanguage('xml', hljsxml);
|
|
17
|
+
// TODO use proper encoding when encoding API supports HTML entities
|
|
18
|
+
const weakEncode = (value, checkHmacCompatibility) => {
|
|
19
|
+
if (checkHmacCompatibility) {
|
|
20
|
+
if (decode(value) !== value)
|
|
21
|
+
throw new Error('error_html_entities_present');
|
|
22
|
+
if (value.includes('"'))
|
|
23
|
+
throw new Error('error_double_quotes_present');
|
|
24
|
+
}
|
|
25
|
+
return value.replace(/"/g, '"');
|
|
26
|
+
};
|
|
17
27
|
/**
|
|
18
28
|
* WARNING: this element is marked as experimental and is subject to change in future releases.
|
|
19
29
|
* We will not be maintaining backwards compatibility for elements in the experimental namespace.
|
|
@@ -98,7 +108,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
98
108
|
return new BooleanSelector(alwaysMatch.join(' ').trim());
|
|
99
109
|
}
|
|
100
110
|
renderBody() {
|
|
101
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
111
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
102
112
|
const addToCartCode = this.__getAddToCartCode();
|
|
103
113
|
const storeUrl = (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:store'].href) !== null && _b !== void 0 ? _b : this.store) !== null && _c !== void 0 ? _c : void 0;
|
|
104
114
|
const store = (_d = this.__storeLoader) === null || _d === void 0 ? void 0 : _d.data;
|
|
@@ -299,13 +309,17 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
299
309
|
<foxy-spinner
|
|
300
310
|
layout="no-label"
|
|
301
311
|
infer="unavailable"
|
|
302
|
-
state=${(addToCartCode === null || addToCartCode === void 0 ? void 0 : addToCartCode.error) ?
|
|
312
|
+
state=${(_f = addToCartCode === null || addToCartCode === void 0 ? void 0 : addToCartCode.error.split('_')[0]) !== null && _f !== void 0 ? _f : 'busy'}
|
|
303
313
|
>
|
|
304
314
|
</foxy-spinner>
|
|
305
315
|
<foxy-i18n
|
|
306
|
-
class
|
|
316
|
+
class=${classMap({
|
|
317
|
+
'text-tertiary': !(addToCartCode === null || addToCartCode === void 0 ? void 0 : addToCartCode.error.startsWith('error_')),
|
|
318
|
+
'text-error': !!(addToCartCode === null || addToCartCode === void 0 ? void 0 : addToCartCode.error.startsWith('error_')),
|
|
319
|
+
'text-s': true,
|
|
320
|
+
})}
|
|
307
321
|
infer="unavailable"
|
|
308
|
-
key="${(
|
|
322
|
+
key="${(_g = addToCartCode === null || addToCartCode === void 0 ? void 0 : addToCartCode.error) !== null && _g !== void 0 ? _g : 'loading_busy'}"
|
|
309
323
|
>
|
|
310
324
|
</foxy-i18n>
|
|
311
325
|
</div>
|
|
@@ -316,7 +330,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
316
330
|
<foxy-internal-summary-control infer="cart-settings">
|
|
317
331
|
<foxy-internal-resource-picker-control
|
|
318
332
|
layout="summary-item"
|
|
319
|
-
first=${ifDefined((
|
|
333
|
+
first=${ifDefined((_j = (_h = this.__storeLoader) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j._links['fx:template_sets'].href)}
|
|
320
334
|
infer="template-set-uri"
|
|
321
335
|
item="foxy-template-set-card"
|
|
322
336
|
>
|
|
@@ -370,7 +384,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
370
384
|
<foxy-nucleon
|
|
371
385
|
class="hidden"
|
|
372
386
|
infer=""
|
|
373
|
-
href=${ifDefined((
|
|
387
|
+
href=${ifDefined((_k = this.localeCodes) !== null && _k !== void 0 ? _k : void 0)}
|
|
374
388
|
id="localeCodesHelperLoader"
|
|
375
389
|
@update=${() => this.requestUpdate()}
|
|
376
390
|
>
|
|
@@ -379,7 +393,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
379
393
|
<foxy-nucleon
|
|
380
394
|
class="hidden"
|
|
381
395
|
infer=""
|
|
382
|
-
href=${ifDefined((
|
|
396
|
+
href=${ifDefined((_l = this.form.template_set_uri) !== null && _l !== void 0 ? _l : void 0)}
|
|
383
397
|
id="templateSetLoader"
|
|
384
398
|
@update=${() => this.requestUpdate()}
|
|
385
399
|
>
|
|
@@ -388,13 +402,13 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
388
402
|
<foxy-nucleon
|
|
389
403
|
class="hidden"
|
|
390
404
|
infer=""
|
|
391
|
-
href=${ifDefined((
|
|
405
|
+
href=${ifDefined((_p = (_o = (_m = this.data) === null || _m === void 0 ? void 0 : _m._links['fx:store'].href) !== null && _o !== void 0 ? _o : this.store) !== null && _p !== void 0 ? _p : void 0)}
|
|
392
406
|
id="storeLoaderId"
|
|
393
407
|
@update=${() => this.requestUpdate()}
|
|
394
408
|
>
|
|
395
409
|
</foxy-nucleon>
|
|
396
410
|
|
|
397
|
-
${(
|
|
411
|
+
${(_q = this.form.items) === null || _q === void 0 ? void 0 : _q.map((product, index) => {
|
|
398
412
|
var _a;
|
|
399
413
|
return html `
|
|
400
414
|
<foxy-nucleon
|
|
@@ -505,13 +519,14 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
505
519
|
const store = (_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data;
|
|
506
520
|
if (!this.defaultDomain || !templateSet || !store || !currencyCode || !cartUrl)
|
|
507
521
|
return '';
|
|
522
|
+
const isHmacOn = store.use_cart_validation;
|
|
508
523
|
let hasAtLeastOneFieldset = false;
|
|
509
|
-
let output = `<form action="${
|
|
524
|
+
let output = `<form action="${weakEncode(cartUrl, isHmacOn)}" method="post" target="_blank">`;
|
|
510
525
|
let level = 1;
|
|
511
526
|
const newline = () => `\n${' '.repeat(level * 2)}`;
|
|
512
527
|
const addHiddenInput = (name, value) => {
|
|
513
|
-
const encodedValue =
|
|
514
|
-
const encodedName =
|
|
528
|
+
const encodedValue = weakEncode(value, isHmacOn);
|
|
529
|
+
const encodedName = weakEncode(name, isHmacOn);
|
|
515
530
|
output += `${newline()}<input type="hidden" name="${encodedName}" value="${encodedValue}">`;
|
|
516
531
|
};
|
|
517
532
|
if (templateSet.code !== 'DEFAULT')
|
|
@@ -551,7 +566,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
551
566
|
addHiddenInput(`${prefix}name`, resolvedName);
|
|
552
567
|
const price = `${product.price}${currencyCode}`;
|
|
553
568
|
if (product.price_configurable) {
|
|
554
|
-
const encodedNoCurrencyPrice =
|
|
569
|
+
const encodedNoCurrencyPrice = weakEncode(product.price.toFixed(2), isHmacOn);
|
|
555
570
|
output += `${newline()}<label>`;
|
|
556
571
|
level++;
|
|
557
572
|
output += `${newline()}<span>${encode(this.t('preview.price_label'))}</span>`;
|
|
@@ -574,7 +589,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
574
589
|
addHiddenInput(`${prefix}code`, product.code);
|
|
575
590
|
}
|
|
576
591
|
else if (store.use_cart_validation) {
|
|
577
|
-
return { error: '
|
|
592
|
+
return { error: 'paused_code_required' };
|
|
578
593
|
}
|
|
579
594
|
if (product.parent_code)
|
|
580
595
|
addHiddenInput(`${prefix}parent_code`, product.parent_code);
|
|
@@ -627,15 +642,17 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
627
642
|
output += `${newline()}<label>`;
|
|
628
643
|
level++;
|
|
629
644
|
output += `${newline()}<span>${encode(this.t('preview.quantity_label'))}</span>`;
|
|
630
|
-
|
|
631
|
-
output +=
|
|
645
|
+
const encodedName = weakEncode(`${prefix}quantity`, isHmacOn);
|
|
646
|
+
output += `${newline()}<input type="number" name="${encodedName}"`;
|
|
647
|
+
output += ` min="${weakEncode(String(resolvedMinQty), isHmacOn)}"`;
|
|
632
648
|
if (resolvedMaxQty !== Infinity)
|
|
633
|
-
output += ` max="${
|
|
649
|
+
output += ` max="${weakEncode(String(resolvedMaxQty), isHmacOn)}"`;
|
|
634
650
|
if (store.use_cart_validation) {
|
|
635
|
-
|
|
651
|
+
const encodedQuantity = weakEncode(String((_e = product.quantity) !== null && _e !== void 0 ? _e : 1), isHmacOn);
|
|
652
|
+
output += ` value="--OPEN--" data-replace="${encodedQuantity}">`;
|
|
636
653
|
}
|
|
637
654
|
else {
|
|
638
|
-
output += ` value="${
|
|
655
|
+
output += ` value="${weakEncode(String((_f = product.quantity) !== null && _f !== void 0 ? _f : 1), isHmacOn)}">`;
|
|
639
656
|
}
|
|
640
657
|
level--;
|
|
641
658
|
output += `${newline()}</label>`;
|
|
@@ -690,12 +707,12 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
690
707
|
output += `${newline()}<label>`;
|
|
691
708
|
level++;
|
|
692
709
|
output += `${newline()}<span>${encode(optionName)}:</span>`;
|
|
693
|
-
output += `${newline()}<input name="${
|
|
710
|
+
output += `${newline()}<input name="${weakEncode(name, isHmacOn)}" `;
|
|
694
711
|
if (store.use_cart_validation) {
|
|
695
|
-
output += `value="--OPEN--" data-replace="${
|
|
712
|
+
output += `value="--OPEN--" data-replace="${weakEncode(value, isHmacOn)}">`;
|
|
696
713
|
}
|
|
697
714
|
else {
|
|
698
|
-
output += `value="${
|
|
715
|
+
output += `value="${weakEncode(value, isHmacOn)}">`;
|
|
699
716
|
}
|
|
700
717
|
level--;
|
|
701
718
|
output += `${newline()}</label>`;
|
|
@@ -711,12 +728,12 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
711
728
|
output += `${newline()}<select name="${prefix}${optionName}">`;
|
|
712
729
|
level++;
|
|
713
730
|
group.forEach(option => {
|
|
714
|
-
var _a;
|
|
731
|
+
var _a, _b;
|
|
715
732
|
const optionIndex = product.custom_options.indexOf(option);
|
|
716
733
|
const itemCategory = (_a = this.__getItemCategoryLoader(productIndex, optionIndex)) === null || _a === void 0 ? void 0 : _a.data;
|
|
717
734
|
const modifiers = this.__getOptionModifiers(option, itemCategory !== null && itemCategory !== void 0 ? itemCategory : null, currencyCode);
|
|
718
|
-
const encodedValue =
|
|
719
|
-
const encodedCaption = encode(option.value);
|
|
735
|
+
const encodedValue = weakEncode(`${option.value}${modifiers}`, isHmacOn);
|
|
736
|
+
const encodedCaption = encode((_b = option.value) !== null && _b !== void 0 ? _b : '');
|
|
720
737
|
output += `${newline()}<option value="${encodedValue}">${encodedCaption}</option>`;
|
|
721
738
|
});
|
|
722
739
|
level--;
|
|
@@ -777,7 +794,7 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
777
794
|
url.searchParams.set(`${prefix}code`, product.code);
|
|
778
795
|
}
|
|
779
796
|
else if (store.use_cart_validation) {
|
|
780
|
-
return { error: '
|
|
797
|
+
return { error: 'paused_code_required' };
|
|
781
798
|
}
|
|
782
799
|
if (product.parent_code)
|
|
783
800
|
url.searchParams.set(`${prefix}parent_code`, product.parent_code);
|
|
@@ -858,37 +875,43 @@ export class ExperimentalAddToCartBuilder extends Base {
|
|
|
858
875
|
}
|
|
859
876
|
__getAddToCartCode() {
|
|
860
877
|
var _a;
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
878
|
+
try {
|
|
879
|
+
const store = (_a = this.__storeLoader) === null || _a === void 0 ? void 0 : _a.data;
|
|
880
|
+
if (!this.encodeHelper || !store)
|
|
881
|
+
return null;
|
|
882
|
+
const checkEquality = store.use_cart_validation;
|
|
883
|
+
const formHTML = this.__getAddToCartFormHTML();
|
|
884
|
+
const linkHref = this.__getAddToCartLinkHref();
|
|
885
|
+
if (!formHTML && !linkHref)
|
|
886
|
+
return null;
|
|
887
|
+
if (typeof formHTML === 'object')
|
|
888
|
+
return { error: formHTML.error };
|
|
889
|
+
if (typeof linkHref === 'object')
|
|
890
|
+
return { error: linkHref.error };
|
|
891
|
+
let unsignedCode;
|
|
892
|
+
if (linkHref) {
|
|
893
|
+
const linkHTML = `<a href="${weakEncode(linkHref, checkEquality)}">Add to cart</a>`;
|
|
894
|
+
unsignedCode = `${formHTML}${this.__signingSeparator}${linkHTML}`;
|
|
895
|
+
}
|
|
896
|
+
else {
|
|
897
|
+
unsignedCode = formHTML;
|
|
898
|
+
}
|
|
899
|
+
if (unsignedCode === this.__previousUnsignedCode && this.__previousSignedCode) {
|
|
900
|
+
const [formHTML, linkHTML] = this.__previousSignedCode.split(this.__signingSeparator);
|
|
901
|
+
return {
|
|
902
|
+
linkHref: linkHTML ? decode(linkHTML.substring(9, linkHTML.length - 17)) : '',
|
|
903
|
+
formHTML,
|
|
904
|
+
};
|
|
905
|
+
}
|
|
906
|
+
this.__previousUnsignedCode = unsignedCode;
|
|
907
|
+
this.__previousSignedCode = '';
|
|
908
|
+
if (store.use_cart_validation)
|
|
909
|
+
this.__signAsync(unsignedCode, this.encodeHelper);
|
|
910
|
+
return { formHTML, linkHref };
|
|
879
911
|
}
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
return {
|
|
883
|
-
linkHref: linkHTML ? decode(linkHTML.substring(9, linkHTML.length - 17)) : '',
|
|
884
|
-
formHTML,
|
|
885
|
-
};
|
|
912
|
+
catch (err) {
|
|
913
|
+
return { error: err.message };
|
|
886
914
|
}
|
|
887
|
-
this.__previousUnsignedCode = unsignedCode;
|
|
888
|
-
this.__previousSignedCode = '';
|
|
889
|
-
if (store.use_cart_validation)
|
|
890
|
-
this.__signAsync(unsignedCode, this.encodeHelper);
|
|
891
|
-
return { formHTML, linkHref };
|
|
892
915
|
}
|
|
893
916
|
__getOptionModifiers(option, optionItemCategory, currencyCode) {
|
|
894
917
|
if (option.value_configurable)
|