@zonos/elements 1.3.12-alpha.0 → 1.3.12-alpha.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/cjs/{cart-fcddc0e6.js → cart-fe91535c.js} +540 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sendErrorLog-fb356701.js +29 -0
- package/dist/cjs/{submitGtag-ec6ead54.js → submitGtag-62c97f6b.js} +1 -20
- package/dist/cjs/zonos-address_4.cjs.entry.js +46 -18
- package/dist/cjs/zonos-card_2.cjs.entry.js +1 -1
- package/dist/cjs/zonos-cart-items_10.cjs.entry.js +8 -8
- package/dist/cjs/zonos-checkout.cjs.entry.js +7 -7
- package/dist/cjs/zonos-controller.cjs.entry.js +1 -1
- package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
- package/dist/cjs/zonos-country-select_3.cjs.entry.js +1 -1
- package/dist/cjs/zonos-elements.cjs.js +1 -1
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +1 -1
- package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
- package/dist/cjs/zonos-payment.cjs.entry.js +1 -1
- package/dist/collection/components/store/translationStore/strings.arabic.js +27 -0
- package/dist/collection/components/store/translationStore/strings.base.js +27 -0
- package/dist/collection/components/store/translationStore/strings.chinese.js +27 -0
- package/dist/collection/components/store/translationStore/strings.danish.js +27 -0
- package/dist/collection/components/store/translationStore/strings.dutch.js +27 -0
- package/dist/collection/components/store/translationStore/strings.french.js +27 -0
- package/dist/collection/components/store/translationStore/strings.german.js +27 -0
- package/dist/collection/components/store/translationStore/strings.hebrew.js +27 -0
- package/dist/collection/components/store/translationStore/strings.indonesian.js +27 -0
- package/dist/collection/components/store/translationStore/strings.italian.js +27 -0
- package/dist/collection/components/store/translationStore/strings.japanese.js +27 -0
- package/dist/collection/components/store/translationStore/strings.korean.js +27 -0
- package/dist/collection/components/store/translationStore/strings.norwegian.js +27 -0
- package/dist/collection/components/store/translationStore/strings.polish.js +27 -0
- package/dist/collection/components/store/translationStore/strings.portuguese.js +27 -0
- package/dist/collection/components/store/translationStore/strings.russian.js +27 -0
- package/dist/collection/components/store/translationStore/strings.spanish.js +27 -0
- package/dist/collection/components/store/translationStore/strings.swedish.js +27 -0
- package/dist/collection/components/store/translationStore/strings.turkish.js +27 -0
- package/dist/collection/components/store/translationStore/strings.vietnamese.js +27 -0
- package/dist/collection/components/stripe/zonos-address/zonos-address.js +41 -15
- package/dist/collection/components/utils/containsNonLatinChars.js +5 -1
- package/dist/components/sendErrorLog.js +21 -0
- package/dist/components/stripe.js +541 -1
- package/dist/components/trackConversionEvent.js +1 -1
- package/dist/components/zonos-address2.js +46 -16
- package/dist/components/zonos-checkout-finish2.js +3 -20
- package/dist/components/zonos-checkout.js +3 -2
- package/dist/components/zonos-controller.js +1 -1
- package/dist/components/zonos-hello.js +1 -1
- package/dist/components/zonos-link-authentication2.js +1 -1
- package/dist/esm/{cart-228e1ef7.js → cart-53f5c10c.js} +540 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sendErrorLog-1c2f093d.js +26 -0
- package/dist/esm/{submitGtag-c3727595.js → submitGtag-d2658ed5.js} +2 -20
- package/dist/esm/zonos-address_4.entry.js +45 -17
- package/dist/esm/zonos-card_2.entry.js +1 -1
- package/dist/esm/zonos-cart-items_10.entry.js +3 -3
- package/dist/esm/zonos-checkout.entry.js +3 -3
- package/dist/esm/zonos-controller.entry.js +1 -1
- package/dist/esm/zonos-country-flag.entry.js +1 -1
- package/dist/esm/zonos-country-select_3.entry.js +1 -1
- package/dist/esm/zonos-elements.js +1 -1
- package/dist/esm/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm/zonos-hello.entry.js +1 -1
- package/dist/esm/zonos-payment.entry.js +1 -1
- package/dist/esm-es5/cart-53f5c10c.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/sendErrorLog-1c2f093d.js +1 -0
- package/dist/esm-es5/submitGtag-d2658ed5.js +1 -0
- package/dist/esm-es5/zonos-address_4.entry.js +1 -1
- package/dist/esm-es5/zonos-card_2.entry.js +1 -1
- package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -1
- package/dist/esm-es5/zonos-checkout.entry.js +1 -1
- package/dist/esm-es5/zonos-controller.entry.js +1 -1
- package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
- package/dist/esm-es5/zonos-country-select_3.entry.js +1 -1
- package/dist/esm-es5/zonos-elements.js +1 -1
- package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm-es5/zonos-hello.entry.js +1 -1
- package/dist/esm-es5/zonos-payment.entry.js +1 -1
- package/dist/scripts/loadZonos.js +1 -1
- package/dist/scripts/zonos.js +1 -1
- package/dist/scripts/zonosBase.js +1 -1
- package/dist/types/components/store/translationStore/strings.arabic.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.base.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.chinese.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.danish.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.dutch.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.french.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.german.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.hebrew.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.indonesian.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.italian.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.japanese.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.korean.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.norwegian.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.polish.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.portuguese.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.russian.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.spanish.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.swedish.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.turkish.d.ts +27 -0
- package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +27 -0
- package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +7 -1
- package/dist/types/types/global.d.ts +1 -2
- package/dist/zonos-elements/{p-35c328ba.system.entry.js → p-09d7a0f8.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-67ff446b.system.entry.js → p-0cc5cfbd.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-11f1b5fb.entry.js → p-125043b5.entry.js} +1 -1
- package/dist/zonos-elements/{p-55940b5a.system.entry.js → p-176f65e1.system.entry.js} +1 -1
- package/dist/zonos-elements/p-19dbd8c2.entry.js +1 -0
- package/dist/zonos-elements/p-3555ce7c.system.js +1 -0
- package/dist/zonos-elements/p-4cc4aba3.system.js +1 -0
- package/dist/zonos-elements/p-6e81adba.system.js +1 -1
- package/dist/zonos-elements/{p-5d5c0fbf.entry.js → p-6f6850aa.entry.js} +1 -1
- package/dist/zonos-elements/{p-5f662cf2.entry.js → p-7e6bc603.entry.js} +1 -1
- package/dist/zonos-elements/{p-ac5aecca.entry.js → p-969f36b3.entry.js} +1 -1
- package/dist/zonos-elements/p-9f4b0222.system.entry.js +1 -0
- package/dist/zonos-elements/p-aa46e052.js +1 -0
- package/dist/zonos-elements/{p-5dbb80df.system.entry.js → p-ac576bd7.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-30cd191f.entry.js → p-af17ec7f.entry.js} +1 -1
- package/dist/zonos-elements/{p-499d7f5d.system.entry.js → p-b6c83e0b.system.entry.js} +1 -1
- package/dist/zonos-elements/p-bc25e1aa.js +1 -0
- package/dist/zonos-elements/p-beb55ff1.js +1 -0
- package/dist/zonos-elements/{p-925ae524.entry.js → p-bece7adb.entry.js} +1 -1
- package/dist/zonos-elements/{p-0082c5be.system.entry.js → p-c30554b1.system.entry.js} +1 -1
- package/dist/zonos-elements/p-d24296a6.system.js +1 -0
- package/dist/zonos-elements/{p-14a2824f.entry.js → p-df6fd81f.entry.js} +1 -1
- package/dist/zonos-elements/{p-c815e8b4.system.entry.js → p-e9732f93.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-7ff3a533.system.entry.js → p-ea1afd2d.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-d31e5fcc.entry.js → p-ecc72526.entry.js} +1 -1
- package/dist/zonos-elements/{p-5f6f0581.system.entry.js → p-fd7ab92d.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-db1adc42.entry.js → p-ff32ea53.entry.js} +1 -1
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/isCheckoutMobile-f491ca7c.js +0 -8
- package/dist/esm/isCheckoutMobile-8846dccb.js +0 -6
- package/dist/esm-es5/cart-228e1ef7.js +0 -1
- package/dist/esm-es5/isCheckoutMobile-8846dccb.js +0 -1
- package/dist/esm-es5/submitGtag-c3727595.js +0 -1
- package/dist/zonos-elements/p-397d8268.entry.js +0 -1
- package/dist/zonos-elements/p-770e5b9e.js +0 -1
- package/dist/zonos-elements/p-81a54668.js +0 -1
- package/dist/zonos-elements/p-93dafeea.system.entry.js +0 -1
- package/dist/zonos-elements/p-94bbf247.system.js +0 -1
- package/dist/zonos-elements/p-960e4021.system.js +0 -1
- package/dist/zonos-elements/p-aed0098c.system.js +0 -1
- package/dist/zonos-elements/p-d11b2449.js +0 -1
|
@@ -6,6 +6,16 @@ import { zonosStore } from "../../store/zonosStore";
|
|
|
6
6
|
import { isCheckoutMobile } from "../../utils/checkout/isCheckoutMobile";
|
|
7
7
|
import { containsNonLatinChars } from "../../utils/containsNonLatinChars";
|
|
8
8
|
import { logError } from "../../utils/logging/logError";
|
|
9
|
+
import { sendErrorLog } from "../../utils/logging/sendErrorLog";
|
|
10
|
+
const mappedFields = {
|
|
11
|
+
city: 'City',
|
|
12
|
+
country: 'Country',
|
|
13
|
+
line1: 'Address line 1',
|
|
14
|
+
line2: 'Address line 2',
|
|
15
|
+
name: 'Name',
|
|
16
|
+
postal_code: 'Postal code',
|
|
17
|
+
state: 'State',
|
|
18
|
+
};
|
|
9
19
|
/**
|
|
10
20
|
* This component is a wrapper for the stripe address element that would render default style object
|
|
11
21
|
*/
|
|
@@ -15,7 +25,8 @@ export class ZonosAddress {
|
|
|
15
25
|
this.titleText = undefined;
|
|
16
26
|
this.defaultAddress = null;
|
|
17
27
|
this.stripe = window.Zonos.stripe;
|
|
18
|
-
this.
|
|
28
|
+
this.reportedInvalidCharacters = false;
|
|
29
|
+
this.invalidCharacterList = null;
|
|
19
30
|
this.isDirtyAddress = false;
|
|
20
31
|
}
|
|
21
32
|
getStripeAddressInstance() {
|
|
@@ -41,13 +52,9 @@ export class ZonosAddress {
|
|
|
41
52
|
stripeStore.stripeAddressEventData = event;
|
|
42
53
|
break;
|
|
43
54
|
}
|
|
44
|
-
const
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
if (hasInvalidCharacters) {
|
|
48
|
-
// no need to prefetch landed cost if the address contains invalid characters
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
55
|
+
const invalidCharacterList = this.checkInvalidCharacters(event);
|
|
56
|
+
this.invalidCharacterList = invalidCharacterList;
|
|
57
|
+
this.invalidCharacters.emit(!!invalidCharacterList);
|
|
51
58
|
}
|
|
52
59
|
updateAddressElement({ stripeAddressElement, type, }) {
|
|
53
60
|
if (type === 'shipping') {
|
|
@@ -60,7 +67,7 @@ export class ZonosAddress {
|
|
|
60
67
|
// Do nothing if the allowed character sets is ALL or the address is incomplete
|
|
61
68
|
if (!address.complete ||
|
|
62
69
|
zonosStore.checkoutSettings.allowedCharacterSets === 'ALL') {
|
|
63
|
-
return
|
|
70
|
+
return null;
|
|
64
71
|
}
|
|
65
72
|
const { address: addressValue, firstName, lastName, name } = address.value;
|
|
66
73
|
const { city, country, line1, line2, postal_code, state } = addressValue;
|
|
@@ -73,11 +80,29 @@ export class ZonosAddress {
|
|
|
73
80
|
postal_code,
|
|
74
81
|
state,
|
|
75
82
|
});
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
83
|
+
if (!Object.keys(invalidList).length) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
// send error event only once so we know what value is invalid
|
|
87
|
+
if (!this.reportedInvalidCharacters) {
|
|
88
|
+
this.reportedInvalidCharacters = true;
|
|
89
|
+
void sendErrorLog({
|
|
90
|
+
endpoint: 'NonLatinInput',
|
|
91
|
+
errors: Object.keys(invalidList).map(fieldName => {
|
|
92
|
+
var _a;
|
|
93
|
+
if (fieldName !== 'name') {
|
|
94
|
+
// trim all number so we don't send sensitive information
|
|
95
|
+
const trimmedAddress = (_a = addressValue[fieldName]) === null || _a === void 0 ? void 0 : _a.replace(/[\d\w]+/g, '');
|
|
96
|
+
return `Invalid character found ${fieldName}: "${trimmedAddress}"`;
|
|
97
|
+
}
|
|
98
|
+
const customerName = name || `${firstName} ${lastName}`;
|
|
99
|
+
const trimmedName = customerName.replace(/[\d\w]+/g, '');
|
|
100
|
+
return `Invalid character found ${fieldName}: "${trimmedName}"`;
|
|
101
|
+
}),
|
|
102
|
+
metadata: {},
|
|
103
|
+
});
|
|
79
104
|
}
|
|
80
|
-
return
|
|
105
|
+
return invalidList;
|
|
81
106
|
}
|
|
82
107
|
async watchInitStripe() {
|
|
83
108
|
var _a, _b;
|
|
@@ -176,7 +201,7 @@ export class ZonosAddress {
|
|
|
176
201
|
}
|
|
177
202
|
render() {
|
|
178
203
|
// this component loads iframe from the stripe elements and puts here, so we don't need to do anything here
|
|
179
|
-
return (h(Host, { key: '
|
|
204
|
+
return (h(Host, { key: 'b1ad2f6c9c23e6411bf1adccdd34b3aa4f5250b1', class: "zonos--address zonos--elements" }, h("zonos-text", { key: '786a733a44925a670393b72bf0ae3db5ba59f9a1', class: "zonos--title", type: "semiBoldLabel" }, this.titleText), h("div", { key: 'b9d58cbc17abf5daf5d13ffdebc7485c3ac6457d', class: "zonos--address-component" }), this.invalidCharacterList && (h("zonos-banner", { bannerTitle: translate('Please resolve the following errors:'), intent: "error" }, Object.keys(this.invalidCharacterList).map(fieldName => (h("zonos-text", null, `- ${translate(mappedFields[fieldName])}: ${translate('only supports Latin characters (A-Z, a-z)')}`)))))));
|
|
180
205
|
}
|
|
181
206
|
static get is() { return "zonos-address"; }
|
|
182
207
|
static get encapsulation() { return "scoped"; }
|
|
@@ -253,7 +278,8 @@ export class ZonosAddress {
|
|
|
253
278
|
static get states() {
|
|
254
279
|
return {
|
|
255
280
|
"stripe": {},
|
|
256
|
-
"
|
|
281
|
+
"reportedInvalidCharacters": {},
|
|
282
|
+
"invalidCharacterList": {},
|
|
257
283
|
"isDirtyAddress": {}
|
|
258
284
|
};
|
|
259
285
|
}
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
* @returns an object with the same keys as the input object, and a boolean value indicating if the value contains non-latin characters
|
|
4
4
|
*/
|
|
5
5
|
export const containsNonLatinChars = (params) => {
|
|
6
|
+
const specialCharacters = /[ʼˮ՚ߴߵ']{1}/u;
|
|
6
7
|
/**
|
|
7
8
|
* This regex matches any character that is not a latin character, punctuation, symbol, number, separator, control, or mark
|
|
8
9
|
* I limited the character found to 1 in the regex, so that we can return early if we find any non-latin character
|
|
9
10
|
**/
|
|
10
11
|
const nonLatinRegex = /[^\p{Script=Latin}\p{P}\p{S}\p{N}\p{Z}\p{C}\p{M}]{1}/u;
|
|
11
|
-
const nonLatinValueList = Object.entries(params).reduce((prev, [key, value]) => nonLatinRegex.test(value)
|
|
12
|
+
const nonLatinValueList = Object.entries(params).reduce((prev, [key, value]) => nonLatinRegex.test(value) &&
|
|
13
|
+
// allow special characters like web apostrophe and quotation mark
|
|
14
|
+
!specialCharacters.test(value)
|
|
15
|
+
? Object.assign(Object.assign({}, prev), { [key]: true }) : prev, {});
|
|
12
16
|
return nonLatinValueList;
|
|
13
17
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { h as handleFetch } from './stripe.js';
|
|
2
|
+
|
|
3
|
+
const sendErrorLog = async ({ endpoint, errors, metadata }) => {
|
|
4
|
+
const userAgentData = 'userAgentData' in window.navigator
|
|
5
|
+
? // userAgentData is not yet supported in all browsers
|
|
6
|
+
window.navigator.userAgentData
|
|
7
|
+
: null;
|
|
8
|
+
const errorObject = {
|
|
9
|
+
endpoint,
|
|
10
|
+
errors,
|
|
11
|
+
metadata: Object.assign({ href: window.location.href, userAgent: userAgentData && userAgentData.brands.length > 0
|
|
12
|
+
? userAgentData
|
|
13
|
+
: window.navigator.userAgent }, metadata),
|
|
14
|
+
};
|
|
15
|
+
void handleFetch(`${"https://v1.route.js.zonos.com"}/api/zonos-elements/log-error`, {
|
|
16
|
+
body: errorObject,
|
|
17
|
+
method: 'POST',
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { sendErrorLog as s };
|