@zonos/elements 1.2.3 → 1.2.4-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/dist/cjs/cart-4ddc2af5.js +616 -0
  2. package/dist/cjs/getBorderRadius-a97a5f75.js +18 -0
  3. package/dist/cjs/getHasMoreSpaceOnRight-4c94667f.js +10 -0
  4. package/dist/cjs/{index-9542d2e7.js → index-20cb112f.js} +127 -26
  5. package/dist/cjs/index.cjs.js +6 -6
  6. package/dist/cjs/isColorVariable-41cacd82.js +16 -0
  7. package/dist/cjs/{isDarkColor-f3446afd.js → isDarkColor-261fcf3d.js} +2 -2
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/localization-11360fed.js +3629 -0
  10. package/dist/cjs/submitGtag-bb093547.js +27 -0
  11. package/dist/cjs/zonos-address_2.cjs.entry.js +108 -108
  12. package/dist/cjs/zonos-badge.cjs.entry.js +25 -22
  13. package/dist/cjs/zonos-banner.cjs.entry.js +65 -53
  14. package/dist/cjs/zonos-button_2.cjs.entry.js +100 -99
  15. package/dist/cjs/zonos-card_2.cjs.entry.js +32 -27
  16. package/dist/cjs/zonos-cart-items_10.cjs.entry.js +422 -419
  17. package/dist/cjs/zonos-checkout.cjs.entry.js +356 -356
  18. package/dist/cjs/zonos-component.cjs.entry.js +15 -15
  19. package/dist/cjs/zonos-controller.cjs.entry.js +231 -193
  20. package/dist/cjs/zonos-country-flag_4.cjs.entry.js +85 -77
  21. package/dist/cjs/zonos-elements.cjs.js +3 -3
  22. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +101 -101
  23. package/dist/cjs/zonos-hello.cjs.entry.js +349 -349
  24. package/dist/cjs/zonos-icon.cjs.entry.js +22 -20
  25. package/dist/cjs/zonos-notification.cjs.entry.js +60 -57
  26. package/dist/cjs/zonos-payment.cjs.entry.js +45 -45
  27. package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +40 -40
  28. package/dist/cjs/zonos-text.cjs.entry.js +145 -143
  29. package/dist/cjs/{zonosStore-a430ec5b.js → zonosStore-a0fa5b77.js} +102 -97
  30. package/dist/collection/__mocks__/vercel-app/loadZonos.js +492 -0
  31. package/dist/collection/__mocks__/vercel-app/localization.js +1 -0
  32. package/dist/collection/__mocks__/vercel-app/zonos-hello.entry.js +1 -0
  33. package/dist/collection/__mocks__/zonos-url/loadZonos.js +492 -0
  34. package/dist/{esm-es5/localization-f3828793.js → collection/__mocks__/zonos-url/localization.js} +1 -1
  35. package/dist/collection/__mocks__/zonos-url/zonos-hello.entry.js +1 -0
  36. package/dist/collection/__tests__/build-utils/urlCheckOne.js +59 -0
  37. package/dist/collection/collection-manifest.json +2 -2
  38. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.css +4 -1
  39. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +37 -37
  40. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.css +4 -1
  41. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +44 -44
  42. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.css +4 -1
  43. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +164 -164
  44. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +4 -1
  45. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +149 -149
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +4 -1
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +559 -559
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.css +4 -1
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +153 -153
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.css +4 -1
  51. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +107 -107
  52. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.css +4 -1
  53. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +164 -164
  54. package/dist/collection/components/common/countries.js +261 -261
  55. package/dist/collection/components/common/zonos-badge/zonos-badge.css +4 -1
  56. package/dist/collection/components/common/zonos-badge/zonos-badge.js +189 -186
  57. package/dist/collection/components/common/zonos-banner/zonos-banner.css +4 -1
  58. package/dist/collection/components/common/zonos-banner/zonos-banner.js +140 -128
  59. package/dist/collection/components/common/zonos-button/zonos-button.css +5 -5
  60. package/dist/collection/components/common/zonos-button/zonos-button.js +407 -406
  61. package/dist/collection/components/common/zonos-card/zonos-card.css +4 -1
  62. package/dist/collection/components/common/zonos-card/zonos-card.js +165 -162
  63. package/dist/collection/components/common/zonos-collapse/zonos-collapse.css +4 -1
  64. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +85 -83
  65. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.css +4 -1
  66. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.js +101 -96
  67. package/dist/collection/components/common/zonos-country-select/zonos-country-select.css +4 -1
  68. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +73 -70
  69. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.css +4 -1
  70. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +62 -59
  71. package/dist/collection/components/common/zonos-dialog/zonos-dialog.css +4 -1
  72. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +373 -371
  73. package/dist/collection/components/common/zonos-icon/zonos-icon.css +4 -1
  74. package/dist/collection/components/common/zonos-icon/zonos-icon.js +123 -121
  75. package/dist/collection/components/common/zonos-logo/zonos-logo.css +4 -1
  76. package/dist/collection/components/common/zonos-logo/zonos-logo.js +92 -90
  77. package/dist/collection/components/common/zonos-notification/zonos-notification.css +4 -1
  78. package/dist/collection/components/common/zonos-notification/zonos-notification.js +128 -125
  79. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.css +4 -1
  80. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.js +168 -168
  81. package/dist/collection/components/common/zonos-spinner/zonos-spinner.css +4 -1
  82. package/dist/collection/components/common/zonos-spinner/zonos-spinner.js +71 -71
  83. package/dist/collection/components/common/zonos-text/zonos-text.css +4 -1
  84. package/dist/collection/components/common/zonos-text/zonos-text.js +193 -191
  85. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.css +4 -1
  86. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +70 -67
  87. package/dist/collection/components/component-template/zonos-component/zonos-component.css +4 -1
  88. package/dist/collection/components/component-template/zonos-component/zonos-component.js +81 -81
  89. package/dist/collection/components/hello/zonos-hello/zonos-hello.css +4 -2
  90. package/dist/collection/components/hello/zonos-hello/zonos-hello.js +447 -446
  91. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.css +4 -1
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +70 -70
  93. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.css +4 -1
  94. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +272 -272
  95. package/dist/collection/components/main/zonos-controller.css +4 -1
  96. package/dist/collection/components/main/zonos-controller.js +400 -319
  97. package/dist/collection/components/store/checkout/cart.js +162 -162
  98. package/dist/collection/components/store/checkout/stripe.js +264 -264
  99. package/dist/collection/components/store/hello/localization.js +112 -112
  100. package/dist/collection/components/store/translationStore/strings.arabic.js +147 -147
  101. package/dist/collection/components/store/translationStore/strings.base.js +147 -147
  102. package/dist/collection/components/store/translationStore/strings.chinese.js +147 -147
  103. package/dist/collection/components/store/translationStore/strings.danish.js +147 -147
  104. package/dist/collection/components/store/translationStore/strings.dutch.js +147 -147
  105. package/dist/collection/components/store/translationStore/strings.french.js +147 -147
  106. package/dist/collection/components/store/translationStore/strings.german.js +147 -147
  107. package/dist/collection/components/store/translationStore/strings.hebrew.js +147 -147
  108. package/dist/collection/components/store/translationStore/strings.indonesian.js +147 -147
  109. package/dist/collection/components/store/translationStore/strings.italian.js +147 -147
  110. package/dist/collection/components/store/translationStore/strings.japanese.js +147 -147
  111. package/dist/collection/components/store/translationStore/strings.korean.js +147 -147
  112. package/dist/collection/components/store/translationStore/strings.norwegian.js +147 -147
  113. package/dist/collection/components/store/translationStore/strings.polish.js +147 -147
  114. package/dist/collection/components/store/translationStore/strings.portuguese.js +147 -147
  115. package/dist/collection/components/store/translationStore/strings.russian.js +147 -147
  116. package/dist/collection/components/store/translationStore/strings.spanish.js +147 -147
  117. package/dist/collection/components/store/translationStore/strings.swedish.js +147 -147
  118. package/dist/collection/components/store/translationStore/strings.turkish.js +147 -147
  119. package/dist/collection/components/store/translationStore/strings.vietnamese.js +147 -147
  120. package/dist/collection/components/store/translationStore.js +65 -65
  121. package/dist/collection/components/store/zonosStore.js +98 -94
  122. package/dist/collection/components/stripe/zonos-address/zonos-address.css +4 -1
  123. package/dist/collection/components/stripe/zonos-address/zonos-address.js +142 -142
  124. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.css +4 -1
  125. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +76 -76
  126. package/dist/collection/components/stripe/zonos-payment/zonos-payment.css +4 -1
  127. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +81 -81
  128. package/dist/collection/components/utils/addDays.js +5 -5
  129. package/dist/collection/components/utils/api/calculateLandedCost.js +11 -11
  130. package/dist/collection/components/utils/api/checkItemRestrictions.js +13 -13
  131. package/dist/collection/components/utils/api/getCountries.js +11 -11
  132. package/dist/collection/components/utils/api/getCountryLandedCost.js +11 -11
  133. package/dist/collection/components/utils/api/getExchangeRate.js +17 -17
  134. package/dist/collection/components/utils/api/getLocaleMessages.js +9 -9
  135. package/dist/collection/components/utils/api/getLocalization.js +24 -19
  136. package/dist/collection/components/utils/api/getShippingZones.js +9 -9
  137. package/dist/collection/components/utils/api/getZonosSetting.js +7 -7
  138. package/dist/collection/components/utils/api/prepCalculateLandedCost.js +26 -26
  139. package/dist/collection/components/utils/checkout/initCheckout.js +16 -16
  140. package/dist/collection/components/utils/checkout/isCheckoutMobile.js +1 -1
  141. package/dist/collection/components/utils/darkenColor.js +4 -4
  142. package/dist/collection/components/utils/formatCurrency.js +8 -8
  143. package/dist/collection/components/utils/formatDate.js +2 -2
  144. package/dist/collection/components/utils/getBorderRadius.js +5 -5
  145. package/dist/collection/components/utils/getButtonTheme.js +8 -8
  146. package/dist/collection/components/utils/getDaysDifference.js +4 -4
  147. package/dist/collection/components/utils/handleFetch.js +89 -77
  148. package/dist/collection/components/utils/hello/currencyConversion/currencyConvert.js +9 -9
  149. package/dist/collection/components/utils/hello/currencyConversion/currencyConvertAndFormat.js +3 -3
  150. package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +10 -10
  151. package/dist/collection/components/utils/hello/currencyConversion/currencyFormat.js +29 -29
  152. package/dist/collection/components/utils/hello/currencyConversion/defaultCurrencyConverter.js +35 -35
  153. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyCode.js +6 -6
  154. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyElements.js +13 -13
  155. package/dist/collection/components/utils/hello/currencyConversion/getInitialElementAmount.js +12 -12
  156. package/dist/collection/components/utils/hello/currencyConversion/getLanguageCode.js +6 -6
  157. package/dist/collection/components/utils/hello/detectItemRestrictions.js +23 -23
  158. package/dist/collection/components/utils/hello/getCurrentHelloLocalePage.js +17 -17
  159. package/dist/collection/components/utils/hello/getHasMoreSpaceAbove.js +5 -5
  160. package/dist/collection/components/utils/hello/getHasMoreSpaceOnRight.js +5 -5
  161. package/dist/collection/components/utils/hello/getProductsOnPage.js +42 -42
  162. package/dist/collection/components/utils/hello/getZCountryUrlParam.js +5 -0
  163. package/dist/collection/components/utils/hello/initHello.js +15 -15
  164. package/dist/collection/components/utils/hello/setZCountryUrlParam.js +9 -0
  165. package/dist/collection/components/utils/isColorVariable.js +10 -10
  166. package/dist/collection/components/utils/isDarkColor.js +1 -1
  167. package/dist/collection/components/utils/isValidSelector.js +8 -8
  168. package/dist/collection/components/utils/jsonParse.js +10 -10
  169. package/dist/collection/components/utils/lightenColor.js +4 -4
  170. package/dist/collection/components/utils/logging/log.js +22 -22
  171. package/dist/collection/components/utils/logging/logError.js +2 -2
  172. package/dist/collection/components/utils/mergeConfig.js +3 -3
  173. package/dist/collection/components/utils/submitGtag.js +9 -9
  174. package/dist/collection/environment.js +138 -116
  175. package/dist/collection/scripts/extractZonosQaUrl.js +26 -0
  176. package/dist/collection/scripts/loadStripe.js +7 -7
  177. package/dist/collection/scripts/stripe.js +80 -80
  178. package/dist/collection/scripts/zonos.js +279 -254
  179. package/dist/collection/styles/stripe/addressRuleStyle.js +14 -14
  180. package/dist/collection/styles/stripe/defaultVariable.js +14 -14
  181. package/dist/collection/types/generated/graphql.customer.types.js +1424 -1424
  182. package/dist/collection/types/generated/graphql.frontend.types.js +376 -376
  183. package/dist/collection/types/stripe/Apperance.js +56 -56
  184. package/dist/collection/types/styles/Color.js +18 -18
  185. package/dist/collection/types/styles/Text.js +97 -97
  186. package/dist/collection/utils/format.js +1 -1
  187. package/dist/collection/utils/generateVercelDeployUrl.js +17 -17
  188. package/dist/components/cart.js +497 -497
  189. package/dist/components/formatCurrency.js +8 -8
  190. package/dist/components/getBorderRadius.js +5 -5
  191. package/dist/components/isColorVariable.js +10 -10
  192. package/dist/components/isDarkColor.js +1 -1
  193. package/dist/components/localization.js +3448 -3426
  194. package/dist/components/submitGtag.js +9 -9
  195. package/dist/components/zonos-address.d.ts +2 -2
  196. package/dist/components/zonos-address2.js +90 -90
  197. package/dist/components/zonos-badge.d.ts +2 -2
  198. package/dist/components/zonos-badge2.js +52 -43
  199. package/dist/components/zonos-banner.d.ts +2 -2
  200. package/dist/components/zonos-banner2.js +88 -76
  201. package/dist/components/zonos-button.d.ts +2 -2
  202. package/dist/components/zonos-button2.js +120 -119
  203. package/dist/components/zonos-card.d.ts +2 -2
  204. package/dist/components/zonos-card2.js +48 -39
  205. package/dist/components/zonos-cart-items.d.ts +2 -2
  206. package/dist/components/zonos-cart-items2.js +43 -43
  207. package/dist/components/zonos-cart-subtotal.d.ts +2 -2
  208. package/dist/components/zonos-cart-subtotal2.js +65 -65
  209. package/dist/components/zonos-checkout-finish.d.ts +2 -2
  210. package/dist/components/zonos-checkout-finish2.js +101 -101
  211. package/dist/components/zonos-checkout-payment.d.ts +2 -2
  212. package/dist/components/zonos-checkout-payment2.js +82 -82
  213. package/dist/components/zonos-checkout.d.ts +2 -2
  214. package/dist/components/zonos-checkout.js +498 -498
  215. package/dist/components/zonos-collapse.d.ts +2 -2
  216. package/dist/components/zonos-collapse2.js +48 -46
  217. package/dist/components/zonos-component.d.ts +2 -2
  218. package/dist/components/zonos-component.js +32 -32
  219. package/dist/components/zonos-controller.d.ts +2 -2
  220. package/dist/components/zonos-controller.js +259 -219
  221. package/dist/components/zonos-country-flag.d.ts +2 -2
  222. package/dist/components/zonos-country-flag2.js +41 -36
  223. package/dist/components/zonos-country-select.d.ts +2 -2
  224. package/dist/components/zonos-country-select2.js +82 -79
  225. package/dist/components/zonos-custom-message.d.ts +2 -2
  226. package/dist/components/zonos-custom-message2.js +44 -41
  227. package/dist/components/zonos-customer-info.d.ts +2 -2
  228. package/dist/components/zonos-customer-info2.js +82 -82
  229. package/dist/components/zonos-dialog.d.ts +2 -2
  230. package/dist/components/zonos-dialog2.js +105 -103
  231. package/dist/components/zonos-hello-dialog-footer.d.ts +2 -2
  232. package/dist/components/zonos-hello-dialog-footer2.js +46 -46
  233. package/dist/components/zonos-hello-dialog.d.ts +2 -2
  234. package/dist/components/zonos-hello-dialog2.js +182 -182
  235. package/dist/components/zonos-hello.d.ts +2 -2
  236. package/dist/components/zonos-hello.js +437 -437
  237. package/dist/components/zonos-icon.d.ts +2 -2
  238. package/dist/components/zonos-icon2.js +40 -38
  239. package/dist/components/zonos-link-authentication.d.ts +2 -2
  240. package/dist/components/zonos-link-authentication2.js +60 -60
  241. package/dist/components/zonos-logo.d.ts +2 -2
  242. package/dist/components/zonos-logo2.js +37 -35
  243. package/dist/components/zonos-notification.d.ts +2 -2
  244. package/dist/components/zonos-notification2.js +82 -79
  245. package/dist/components/zonos-payment.d.ts +2 -2
  246. package/dist/components/zonos-payment2.js +64 -64
  247. package/dist/components/zonos-review.d.ts +2 -2
  248. package/dist/components/zonos-review2.js +72 -72
  249. package/dist/components/zonos-shipping-rich-radio.d.ts +2 -2
  250. package/dist/components/zonos-shipping-rich-radio2.js +62 -62
  251. package/dist/components/zonos-shipping.d.ts +2 -2
  252. package/dist/components/zonos-shipping2.js +114 -114
  253. package/dist/components/zonos-spinner.d.ts +2 -2
  254. package/dist/components/zonos-spinner2.js +31 -31
  255. package/dist/components/zonos-text.d.ts +2 -2
  256. package/dist/components/zonos-text2.js +166 -164
  257. package/dist/components/zonos-v-stack.d.ts +2 -2
  258. package/dist/components/zonos-v-stack2.js +29 -26
  259. package/dist/components/zonosStore.js +101 -97
  260. package/dist/esm/cart-cd87f476.js +598 -0
  261. package/dist/esm/getBorderRadius-35e8acce.js +16 -0
  262. package/dist/esm/getHasMoreSpaceOnRight-70eb913a.js +8 -0
  263. package/dist/esm/{index-d1aa9293.js → index-3617e24c.js} +127 -26
  264. package/dist/esm/index.js +6 -6
  265. package/dist/esm/isColorVariable-91c33804.js +14 -0
  266. package/dist/esm/{isDarkColor-6fbb9b14.js → isDarkColor-44e9e451.js} +2 -2
  267. package/dist/esm/loader.js +3 -3
  268. package/dist/esm/localization-f573428e.js +3614 -0
  269. package/dist/esm/submitGtag-75af52be.js +24 -0
  270. package/dist/esm/zonos-address_2.entry.js +108 -108
  271. package/dist/esm/zonos-badge.entry.js +25 -22
  272. package/dist/esm/zonos-banner.entry.js +65 -53
  273. package/dist/esm/zonos-button_2.entry.js +100 -99
  274. package/dist/esm/zonos-card_2.entry.js +32 -27
  275. package/dist/esm/zonos-cart-items_10.entry.js +422 -419
  276. package/dist/esm/zonos-checkout.entry.js +356 -356
  277. package/dist/esm/zonos-component.entry.js +15 -15
  278. package/dist/esm/zonos-controller.entry.js +231 -193
  279. package/dist/esm/zonos-country-flag_4.entry.js +85 -77
  280. package/dist/esm/zonos-elements.js +4 -4
  281. package/dist/esm/zonos-hello-dialog.entry.js +101 -101
  282. package/dist/esm/zonos-hello.entry.js +349 -349
  283. package/dist/esm/zonos-icon.entry.js +22 -20
  284. package/dist/esm/zonos-notification.entry.js +60 -57
  285. package/dist/esm/zonos-payment.entry.js +45 -45
  286. package/dist/esm/zonos-shipping-rich-radio.entry.js +40 -40
  287. package/dist/esm/zonos-text.entry.js +145 -143
  288. package/dist/esm/{zonosStore-05a62104.js → zonosStore-e0b7a5cf.js} +102 -98
  289. package/dist/esm-es5/{cart-17650017.js → cart-cd87f476.js} +1 -1
  290. package/dist/esm-es5/getBorderRadius-35e8acce.js +1 -0
  291. package/dist/esm-es5/getHasMoreSpaceOnRight-70eb913a.js +1 -0
  292. package/dist/esm-es5/index-3617e24c.js +2 -0
  293. package/dist/esm-es5/index.js +1 -1
  294. package/dist/esm-es5/{isDarkColor-6fbb9b14.js → isDarkColor-44e9e451.js} +1 -1
  295. package/dist/esm-es5/loader.js +1 -1
  296. package/dist/esm-es5/localization-f573428e.js +1 -0
  297. package/dist/esm-es5/{submitGtag-a901ece5.js → submitGtag-75af52be.js} +1 -1
  298. package/dist/esm-es5/zonos-address_2.entry.js +1 -1
  299. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  300. package/dist/esm-es5/zonos-banner.entry.js +1 -1
  301. package/dist/esm-es5/zonos-button_2.entry.js +1 -1
  302. package/dist/esm-es5/zonos-card_2.entry.js +1 -1
  303. package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -1
  304. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  305. package/dist/esm-es5/zonos-component.entry.js +1 -1
  306. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  307. package/dist/esm-es5/zonos-country-flag_4.entry.js +1 -1
  308. package/dist/esm-es5/zonos-elements.js +1 -1
  309. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  310. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  311. package/dist/esm-es5/zonos-icon.entry.js +1 -1
  312. package/dist/esm-es5/zonos-notification.entry.js +1 -1
  313. package/dist/esm-es5/zonos-payment.entry.js +1 -1
  314. package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
  315. package/dist/esm-es5/zonos-text.entry.js +1 -1
  316. package/dist/esm-es5/zonosStore-e0b7a5cf.js +1 -0
  317. package/dist/scripts/extractZonosQaUrl.js +30 -0
  318. package/dist/scripts/loadZonos.js +99 -48
  319. package/dist/scripts/zonos.js +99 -48
  320. package/dist/types/__tests__/build-utils/urlCheckOne.d.ts +6 -0
  321. package/dist/types/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.d.ts +2 -2
  322. package/dist/types/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.d.ts +1 -1
  323. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +28 -28
  324. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.d.ts +31 -31
  325. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +77 -77
  326. package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +31 -31
  327. package/dist/types/components/checkout/zonos-checkout/zonos-review/zonos-review.d.ts +14 -14
  328. package/dist/types/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.d.ts +29 -29
  329. package/dist/types/components/common/zonos-badge/zonos-badge.d.ts +35 -35
  330. package/dist/types/components/common/zonos-banner/zonos-banner.d.ts +21 -21
  331. package/dist/types/components/common/zonos-button/zonos-button.d.ts +92 -92
  332. package/dist/types/components/common/zonos-card/zonos-card.d.ts +29 -29
  333. package/dist/types/components/common/zonos-collapse/zonos-collapse.d.ts +14 -14
  334. package/dist/types/components/common/zonos-country-flag/zonos-country-flag.d.ts +16 -16
  335. package/dist/types/components/common/zonos-country-select/zonos-country-select.d.ts +9 -9
  336. package/dist/types/components/common/zonos-custom-message/zonos-custom-message.d.ts +9 -9
  337. package/dist/types/components/common/zonos-dialog/zonos-dialog.d.ts +75 -75
  338. package/dist/types/components/common/zonos-icon/zonos-icon.d.ts +27 -27
  339. package/dist/types/components/common/zonos-logo/zonos-logo.d.ts +13 -13
  340. package/dist/types/components/common/zonos-notification/zonos-notification.d.ts +28 -28
  341. package/dist/types/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.d.ts +35 -35
  342. package/dist/types/components/common/zonos-spinner/zonos-spinner.d.ts +11 -11
  343. package/dist/types/components/common/zonos-text/zonos-text.d.ts +30 -30
  344. package/dist/types/components/common/zonos-v-stack/zonos-v-stack.d.ts +10 -10
  345. package/dist/types/components/component-template/zonos-component/zonos-component.d.ts +14 -14
  346. package/dist/types/components/hello/zonos-hello/zonos-hello.d.ts +68 -68
  347. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.d.ts +10 -10
  348. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog.d.ts +41 -41
  349. package/dist/types/components/main/zonos-controller.d.ts +47 -38
  350. package/dist/types/components/store/checkout/cart.d.ts +64 -64
  351. package/dist/types/components/store/checkout/stripe.d.ts +43 -43
  352. package/dist/types/components/store/hello/localization.d.ts +15 -15
  353. package/dist/types/components/store/translationStore/strings.arabic.d.ts +147 -147
  354. package/dist/types/components/store/translationStore/strings.base.d.ts +147 -147
  355. package/dist/types/components/store/translationStore/strings.chinese.d.ts +147 -147
  356. package/dist/types/components/store/translationStore/strings.danish.d.ts +147 -147
  357. package/dist/types/components/store/translationStore/strings.dutch.d.ts +147 -147
  358. package/dist/types/components/store/translationStore/strings.french.d.ts +147 -147
  359. package/dist/types/components/store/translationStore/strings.german.d.ts +147 -147
  360. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +147 -147
  361. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +147 -147
  362. package/dist/types/components/store/translationStore/strings.italian.d.ts +147 -147
  363. package/dist/types/components/store/translationStore/strings.japanese.d.ts +147 -147
  364. package/dist/types/components/store/translationStore/strings.korean.d.ts +147 -147
  365. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +147 -147
  366. package/dist/types/components/store/translationStore/strings.polish.d.ts +147 -147
  367. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +147 -147
  368. package/dist/types/components/store/translationStore/strings.russian.d.ts +147 -147
  369. package/dist/types/components/store/translationStore/strings.spanish.d.ts +147 -147
  370. package/dist/types/components/store/translationStore/strings.swedish.d.ts +147 -147
  371. package/dist/types/components/store/translationStore/strings.turkish.d.ts +147 -147
  372. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +147 -147
  373. package/dist/types/components/store/translationStore.d.ts +2 -2
  374. package/dist/types/components/store/zonosStore.d.ts +23 -22
  375. package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +17 -17
  376. package/dist/types/components/stripe/zonos-link-authentication/zonos-link-authentication.d.ts +9 -9
  377. package/dist/types/components/stripe/zonos-payment/zonos-payment.d.ts +10 -10
  378. package/dist/types/components/utils/addDays.d.ts +6 -6
  379. package/dist/types/components/utils/api/checkItemRestrictions.d.ts +14 -14
  380. package/dist/types/components/utils/api/getCountryLandedCost.d.ts +6 -6
  381. package/dist/types/components/utils/api/getExchangeRate.d.ts +17 -17
  382. package/dist/types/components/utils/api/getLocaleMessages.d.ts +15 -15
  383. package/dist/types/components/utils/api/getLocalization.d.ts +2 -2
  384. package/dist/types/components/utils/api/getZonosSetting.d.ts +4 -4
  385. package/dist/types/components/utils/changeDeepProperty.d.ts +3 -3
  386. package/dist/types/components/utils/changeDeepPropertyAtIndex.d.ts +4 -4
  387. package/dist/types/components/utils/darkenColor.d.ts +2 -2
  388. package/dist/types/components/utils/formatCurrency.d.ts +3 -3
  389. package/dist/types/components/utils/formatDate.d.ts +6 -6
  390. package/dist/types/components/utils/handleFetch.d.ts +7 -7
  391. package/dist/types/components/utils/hello/detectItemRestrictions.d.ts +10 -10
  392. package/dist/types/components/utils/hello/getZCountryUrlParam.d.ts +2 -0
  393. package/dist/types/components/utils/hello/setZCountryUrlParam.d.ts +2 -0
  394. package/dist/types/components/utils/lightenColor.d.ts +2 -2
  395. package/dist/types/components/utils/mergeConfig.d.ts +1 -1
  396. package/dist/types/components/utils/submitGtag.d.ts +3 -3
  397. package/dist/types/components.d.ts +96 -0
  398. package/dist/types/environment.d.ts +39 -34
  399. package/dist/types/scripts/extractZonosQaUrl.d.ts +11 -0
  400. package/dist/types/scripts/stripe.d.ts +2 -2
  401. package/dist/types/scripts/zonos.d.ts +50 -40
  402. package/dist/types/stencil-public-runtime.d.ts +29 -0
  403. package/dist/types/styles/stripe/addressRuleStyle.d.ts +1 -1
  404. package/dist/types/styles/stripe/defaultVariable.d.ts +2 -2
  405. package/dist/types/types/ICountryJson.d.ts +20 -20
  406. package/dist/types/types/JsonError.d.ts +3 -3
  407. package/dist/types/types/Translation.d.ts +1 -1
  408. package/dist/types/types/checkout/CheckoutConfig.d.ts +52 -52
  409. package/dist/types/types/checkout/api/CalculateLandedCostRequest.d.ts +16 -16
  410. package/dist/types/types/generated/graphql.customer.types.d.ts +1968 -1968
  411. package/dist/types/types/generated/graphql.frontend.types.d.ts +449 -449
  412. package/dist/types/types/hello/HelloConfig.d.ts +20 -20
  413. package/dist/types/types/hello/Product.d.ts +3 -3
  414. package/dist/types/types/hello/RestrictedItem.d.ts +1 -1
  415. package/dist/types/types/online-store/OnlineStoreConfig.d.ts +1 -1
  416. package/dist/types/types/stripe/Apperance.d.ts +3 -3
  417. package/dist/types/types/styles/Text.d.ts +90 -90
  418. package/dist/types/types/utils/deep/IDeepKeyof.d.ts +1 -1
  419. package/dist/types/types/utils/deep/IDeepKeyofAtIndex.d.ts +2 -2
  420. package/dist/types/utils/generateVercelDeployUrl.d.ts +2 -2
  421. package/dist/zonos-elements/index.esm.js +1 -1
  422. package/dist/zonos-elements/p-0175125e.system.js +1 -0
  423. package/dist/zonos-elements/p-03923a86.system.entry.js +1 -0
  424. package/dist/zonos-elements/p-08298e74.entry.js +1 -0
  425. package/dist/zonos-elements/p-1bddc7ca.system.entry.js +1 -0
  426. package/dist/zonos-elements/{p-770c959e.js → p-1f8b684a.js} +1 -1
  427. package/dist/zonos-elements/p-2228b050.entry.js +1 -0
  428. package/dist/zonos-elements/p-23e7c655.system.js +1 -1
  429. package/dist/zonos-elements/p-2466df77.entry.js +1 -0
  430. package/dist/zonos-elements/p-29b993c2.system.entry.js +1 -0
  431. package/dist/zonos-elements/p-2a32dc0a.system.entry.js +1 -0
  432. package/dist/zonos-elements/p-2a666084.entry.js +1 -0
  433. package/dist/zonos-elements/p-2f1e9192.system.entry.js +1 -0
  434. package/dist/zonos-elements/{p-f7875c40.js → p-39a5e8e0.js} +1 -1
  435. package/dist/zonos-elements/p-44ddebe4.system.entry.js +1 -0
  436. package/dist/zonos-elements/p-4e8b5d86.system.entry.js +1 -0
  437. package/dist/zonos-elements/p-534dcbd4.system.js +1 -0
  438. package/dist/zonos-elements/p-5a41b5fd.entry.js +1 -0
  439. package/dist/zonos-elements/p-5d0eceaa.entry.js +1 -0
  440. package/dist/zonos-elements/{p-a1fa50fb.entry.js → p-62ccb686.entry.js} +1 -1
  441. package/dist/zonos-elements/p-643eeb24.system.js +1 -0
  442. package/dist/zonos-elements/p-660a588b.entry.js +1 -0
  443. package/dist/zonos-elements/p-6affe5cc.entry.js +1 -0
  444. package/dist/zonos-elements/p-72ea628d.system.js +1 -0
  445. package/dist/zonos-elements/{p-85ab35c9.system.js → p-754bdfdb.system.js} +1 -1
  446. package/dist/zonos-elements/{p-164fae93.system.js → p-779621e4.system.js} +1 -1
  447. package/dist/zonos-elements/{p-08695f4e.js → p-77a7929b.js} +1 -1
  448. package/dist/zonos-elements/p-7a15d841.entry.js +1 -0
  449. package/dist/zonos-elements/p-7a81ccb5.system.entry.js +1 -0
  450. package/dist/zonos-elements/p-80ba24a8.system.js +1 -0
  451. package/dist/zonos-elements/p-83d100b8.entry.js +1 -0
  452. package/dist/zonos-elements/{p-bf070bf6.js → p-8bbad467.js} +1 -1
  453. package/dist/zonos-elements/p-8ebc3ca5.system.entry.js +1 -0
  454. package/dist/zonos-elements/p-9c78d0ca.entry.js +1 -0
  455. package/dist/zonos-elements/p-9ef86de7.entry.js +1 -0
  456. package/dist/zonos-elements/p-ab46cee9.system.entry.js +1 -0
  457. package/dist/zonos-elements/p-b0268bc5.entry.js +1 -0
  458. package/dist/zonos-elements/p-b4db1620.entry.js +1 -0
  459. package/dist/zonos-elements/p-bc7bf53e.system.js +1 -0
  460. package/dist/zonos-elements/p-bec05c21.system.js +2 -0
  461. package/dist/zonos-elements/p-bec21999.system.js +1 -0
  462. package/dist/zonos-elements/{p-8378d94e.js → p-c299049e.js} +1 -1
  463. package/dist/zonos-elements/p-cd4f8e13.system.entry.js +1 -0
  464. package/dist/zonos-elements/p-ceb2cd7b.system.entry.js +1 -0
  465. package/dist/zonos-elements/p-cf4545ed.system.entry.js +1 -0
  466. package/dist/zonos-elements/p-cf8aaa17.js +2 -0
  467. package/dist/zonos-elements/p-dc9b318c.system.entry.js +1 -0
  468. package/dist/zonos-elements/p-dcf64928.system.entry.js +1 -0
  469. package/dist/zonos-elements/p-e1de2a1f.js +1 -0
  470. package/dist/zonos-elements/{p-3f3fbcea.entry.js → p-e694312d.entry.js} +1 -1
  471. package/dist/zonos-elements/p-ec26fe57.entry.js +1 -0
  472. package/dist/zonos-elements/p-edbea8df.system.js +1 -0
  473. package/dist/zonos-elements/p-f8198015.system.entry.js +1 -0
  474. package/dist/zonos-elements/p-fcd4fc66.system.entry.js +1 -0
  475. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  476. package/dist/zonos-elements/zonos-elements.js +15 -15
  477. package/package.json +55 -54
  478. package/dist/cjs/cart-55512e32.js +0 -616
  479. package/dist/cjs/getBorderRadius-fdd605c6.js +0 -18
  480. package/dist/cjs/getHasMoreSpaceOnRight-2855491b.js +0 -10
  481. package/dist/cjs/isColorVariable-c1ed7303.js +0 -16
  482. package/dist/cjs/localization-d7fe7290.js +0 -3606
  483. package/dist/cjs/submitGtag-d65003f9.js +0 -27
  484. package/dist/collection/components/utils/hello/setZonosCountryUrlParam.js +0 -9
  485. package/dist/esm/cart-17650017.js +0 -598
  486. package/dist/esm/getBorderRadius-45764ad7.js +0 -16
  487. package/dist/esm/getHasMoreSpaceOnRight-feba1ae2.js +0 -8
  488. package/dist/esm/isColorVariable-4cda28c9.js +0 -14
  489. package/dist/esm/localization-f3828793.js +0 -3592
  490. package/dist/esm/submitGtag-a901ece5.js +0 -24
  491. package/dist/esm-es5/getBorderRadius-45764ad7.js +0 -1
  492. package/dist/esm-es5/getHasMoreSpaceOnRight-feba1ae2.js +0 -1
  493. package/dist/esm-es5/index-d1aa9293.js +0 -2
  494. package/dist/esm-es5/zonosStore-05a62104.js +0 -1
  495. package/dist/types/components/utils/hello/setZonosCountryUrlParam.d.ts +0 -2
  496. package/dist/zonos-elements/p-0190f7c4.entry.js +0 -1
  497. package/dist/zonos-elements/p-0e0b46a5.js +0 -1
  498. package/dist/zonos-elements/p-0ed3bb9f.system.entry.js +0 -1
  499. package/dist/zonos-elements/p-15b71f0b.system.entry.js +0 -1
  500. package/dist/zonos-elements/p-224125da.system.entry.js +0 -1
  501. package/dist/zonos-elements/p-23204b78.system.entry.js +0 -1
  502. package/dist/zonos-elements/p-28681677.entry.js +0 -1
  503. package/dist/zonos-elements/p-2b6325ab.entry.js +0 -1
  504. package/dist/zonos-elements/p-36425562.system.entry.js +0 -1
  505. package/dist/zonos-elements/p-3a56c240.entry.js +0 -1
  506. package/dist/zonos-elements/p-43a25dab.entry.js +0 -1
  507. package/dist/zonos-elements/p-4a5096d2.system.js +0 -1
  508. package/dist/zonos-elements/p-64fdb7b6.system.js +0 -1
  509. package/dist/zonos-elements/p-68d06767.system.js +0 -2
  510. package/dist/zonos-elements/p-6d82986c.system.entry.js +0 -1
  511. package/dist/zonos-elements/p-6dcd752e.system.js +0 -1
  512. package/dist/zonos-elements/p-6e7cd3f7.entry.js +0 -1
  513. package/dist/zonos-elements/p-7bacecf7.entry.js +0 -1
  514. package/dist/zonos-elements/p-824395fd.system.entry.js +0 -1
  515. package/dist/zonos-elements/p-84b00605.system.entry.js +0 -1
  516. package/dist/zonos-elements/p-8a75b765.system.entry.js +0 -1
  517. package/dist/zonos-elements/p-8aabbb9b.system.js +0 -1
  518. package/dist/zonos-elements/p-8b415737.system.entry.js +0 -1
  519. package/dist/zonos-elements/p-8c867835.system.js +0 -1
  520. package/dist/zonos-elements/p-9202375f.entry.js +0 -1
  521. package/dist/zonos-elements/p-9688bb12.entry.js +0 -1
  522. package/dist/zonos-elements/p-98a6e093.system.entry.js +0 -1
  523. package/dist/zonos-elements/p-aca66238.system.entry.js +0 -1
  524. package/dist/zonos-elements/p-b618cf03.entry.js +0 -1
  525. package/dist/zonos-elements/p-b75ffe64.system.entry.js +0 -1
  526. package/dist/zonos-elements/p-bc2c42f5.entry.js +0 -1
  527. package/dist/zonos-elements/p-c8ad044e.system.entry.js +0 -1
  528. package/dist/zonos-elements/p-cc070c1c.entry.js +0 -1
  529. package/dist/zonos-elements/p-cc1c785c.system.entry.js +0 -1
  530. package/dist/zonos-elements/p-cd71e41e.entry.js +0 -1
  531. package/dist/zonos-elements/p-cf97cc68.system.entry.js +0 -1
  532. package/dist/zonos-elements/p-d6b8563b.system.entry.js +0 -1
  533. package/dist/zonos-elements/p-dc8d7000.js +0 -2
  534. package/dist/zonos-elements/p-e5908de2.entry.js +0 -1
  535. package/dist/zonos-elements/p-f6add79c.system.js +0 -1
  536. package/dist/zonos-elements/p-f8491335.system.js +0 -1
  537. package/dist/zonos-elements/p-f868ed42.entry.js +0 -1
  538. package/dist/zonos-elements/p-f95ac9ec.system.js +0 -1
  539. /package/dist/esm-es5/{isColorVariable-4cda28c9.js → isColorVariable-91c33804.js} +0 -0
  540. /package/dist/zonos-elements/{p-0636859b.js → p-4c414a92.js} +0 -0
  541. /package/dist/zonos-elements/{p-b6c499d4.js → p-5883217a.js} +0 -0
@@ -2,47 +2,47 @@ import { zonosStore } from "../../store/zonosStore";
2
2
  import { isValidSelector } from "../isValidSelector";
3
3
  import { logError } from "../logging/logError";
4
4
  export const getProductsOnPage = () => {
5
- var _a, _b;
6
- const { productAddToCartElementSelector, productDescriptionElementSelector, productTitleElementSelector, restrictionBehavior, } = zonosStore.helloSettings;
7
- if (!productTitleElementSelector || !productDescriptionElementSelector) {
8
- logError(`Hello Could not check item restrictions - must provide title and description selectors.`);
9
- }
10
- const titleNodes = (productTitleElementSelector &&
11
- isValidSelector(productTitleElementSelector) &&
12
- document.querySelectorAll(productTitleElementSelector)) ||
13
- [];
14
- const descriptionNodes = (productDescriptionElementSelector &&
15
- isValidSelector(productDescriptionElementSelector) &&
16
- document.querySelectorAll(productDescriptionElementSelector)) ||
17
- [];
18
- if (titleNodes.length !== descriptionNodes.length) {
19
- // If the title and description selectors don't match, kill item restrictions altogether
20
- logError('Hello Could not check item restrictions - Title and description selectors do not match');
21
- return [];
22
- }
23
- const shouldDisableCart = restrictionBehavior === 'RESTRICT_AND_BLOCK';
24
- const cartButtonNodes = (shouldDisableCart &&
25
- productAddToCartElementSelector &&
26
- isValidSelector(productAddToCartElementSelector) &&
27
- document.querySelectorAll(productAddToCartElementSelector)) ||
28
- [];
29
- if (shouldDisableCart && cartButtonNodes.length !== descriptionNodes.length) {
30
- // If the "add to cart" selectors don't match, log the error and continue
31
- logError('Hello could not disable "Add to cart" buttons - Title and add to cart selectors do not match');
32
- }
33
- const mergedElements = [];
34
- for (let i = 0; i < titleNodes.length; i++) {
35
- const titleNode = titleNodes[i];
36
- const descriptionNode = descriptionNodes[i];
37
- const cartButtonNode = cartButtonNodes[i];
38
- if (titleNode && descriptionNode) {
39
- const element = {
40
- cartButtonNode: cartButtonNode || null,
41
- description: ((_a = descriptionNode.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '',
42
- title: ((_b = titleNode.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || '',
43
- };
44
- mergedElements.push(element);
5
+ var _a, _b;
6
+ const { productAddToCartElementSelector, productDescriptionElementSelector, productTitleElementSelector, restrictionBehavior, } = zonosStore.helloSettings;
7
+ if (!productTitleElementSelector || !productDescriptionElementSelector) {
8
+ logError(`Hello Could not check item restrictions - must provide title and description selectors.`);
45
9
  }
46
- }
47
- return mergedElements;
10
+ const titleNodes = (productTitleElementSelector &&
11
+ isValidSelector(productTitleElementSelector) &&
12
+ document.querySelectorAll(productTitleElementSelector)) ||
13
+ [];
14
+ const descriptionNodes = (productDescriptionElementSelector &&
15
+ isValidSelector(productDescriptionElementSelector) &&
16
+ document.querySelectorAll(productDescriptionElementSelector)) ||
17
+ [];
18
+ if (titleNodes.length !== descriptionNodes.length) {
19
+ // If the title and description selectors don't match, kill item restrictions altogether
20
+ logError('Hello Could not check item restrictions - Title and description selectors do not match');
21
+ return [];
22
+ }
23
+ const shouldDisableCart = restrictionBehavior === 'RESTRICT_AND_BLOCK';
24
+ const cartButtonNodes = (shouldDisableCart &&
25
+ productAddToCartElementSelector &&
26
+ isValidSelector(productAddToCartElementSelector) &&
27
+ document.querySelectorAll(productAddToCartElementSelector)) ||
28
+ [];
29
+ if (shouldDisableCart && cartButtonNodes.length !== descriptionNodes.length) {
30
+ // If the "add to cart" selectors don't match, log the error and continue
31
+ logError('Hello could not disable "Add to cart" buttons - Title and add to cart selectors do not match');
32
+ }
33
+ const mergedElements = [];
34
+ for (let i = 0; i < titleNodes.length; i++) {
35
+ const titleNode = titleNodes[i];
36
+ const descriptionNode = descriptionNodes[i];
37
+ const cartButtonNode = cartButtonNodes[i];
38
+ if (titleNode && descriptionNode) {
39
+ const element = {
40
+ cartButtonNode: cartButtonNode || null,
41
+ description: ((_a = descriptionNode.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '',
42
+ title: ((_b = titleNode.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || '',
43
+ };
44
+ mergedElements.push(element);
45
+ }
46
+ }
47
+ return mergedElements;
48
48
  };
@@ -0,0 +1,5 @@
1
+ export const getZCountryUrlParam = (urlParams) => {
2
+ const urlSearchParams = new URLSearchParams(urlParams || window.location.search);
3
+ const zCountry = urlSearchParams.get('zCountry');
4
+ return zCountry;
5
+ };
@@ -2,21 +2,21 @@ import { isValidSelector } from "../isValidSelector";
2
2
  import { log } from "../logging/log";
3
3
  import { logError } from "../logging/logError";
4
4
  const injectHelloComponent = (triggerAnchorElement) => {
5
- // append checkout component if doesn't exist
6
- const helloElement = document.querySelector('zonos-hello');
7
- if (!helloElement && triggerAnchorElement) {
8
- const newHelloElement = document.createElement('zonos-hello');
9
- triggerAnchorElement.appendChild(newHelloElement);
10
- }
5
+ // append checkout component if doesn't exist
6
+ const helloElement = document.querySelector('zonos-hello');
7
+ if (!helloElement && triggerAnchorElement) {
8
+ const newHelloElement = document.createElement('zonos-hello');
9
+ triggerAnchorElement.appendChild(newHelloElement);
10
+ }
11
11
  };
12
12
  export const initHello = async (helloSettings) => {
13
- const { anchorElementSelector } = helloSettings;
14
- // check if checkout button anchor selector user pass in is valid to setup hello
15
- if (!anchorElementSelector || !isValidSelector(anchorElementSelector)) {
16
- logError(`Selector anchorElementSelector "${helloSettings.anchorElementSelector}" is not a valid selector.`);
17
- return;
18
- }
19
- const triggerElement = document.querySelector(anchorElementSelector);
20
- log('Hello init complete');
21
- injectHelloComponent(triggerElement);
13
+ const { anchorElementSelector } = helloSettings;
14
+ // check if checkout button anchor selector user pass in is valid to setup hello
15
+ if (!anchorElementSelector || !isValidSelector(anchorElementSelector)) {
16
+ logError(`Selector anchorElementSelector "${helloSettings.anchorElementSelector}" is not a valid selector.`);
17
+ return;
18
+ }
19
+ const triggerElement = document.querySelector(anchorElementSelector);
20
+ log('Hello init complete');
21
+ injectHelloComponent(triggerElement);
22
22
  };
@@ -0,0 +1,9 @@
1
+ export const setZCountryUrlParam = (selectedCountryCode) => {
2
+ if (!selectedCountryCode) {
3
+ return;
4
+ }
5
+ const urlSearchParams = new URLSearchParams(window.location.search);
6
+ urlSearchParams.set('zCountry', selectedCountryCode);
7
+ const newUrl = `${window.location.pathname}?${urlSearchParams.toString()}`;
8
+ window.history.replaceState({}, '', newUrl);
9
+ };
@@ -1,12 +1,12 @@
1
1
  export const isColorVariable = (color) => {
2
- const isAminoVariable = color &&
3
- // match --amino-<color>
4
- (/--amino-/gi.test(color) ||
5
- // match 'gray-0'
6
- /(\-*)\w+-\d+/gi.test(color));
7
- return (isAminoVariable &&
8
- // match rgb, rgba, hsl, hsla, hex, and css variable
9
- !color.includes('(') &&
10
- // match hex
11
- !color.includes('#'));
2
+ const isAminoVariable = color &&
3
+ // match --amino-<color>
4
+ (/--amino-/gi.test(color) ||
5
+ // match 'gray-0'
6
+ /(\-*)\w+-\d+/gi.test(color));
7
+ return (isAminoVariable &&
8
+ // match rgb, rgba, hsl, hsla, hex, and css variable
9
+ !color.includes('(') &&
10
+ // match hex
11
+ !color.includes('#'));
12
12
  };
@@ -1,4 +1,4 @@
1
1
  import tinycolor from "tinycolor2";
2
2
  export const isDarkColor = (color) => {
3
- return tinycolor(color).isDark();
3
+ return tinycolor(color).isDark();
4
4
  };
@@ -5,12 +5,12 @@
5
5
  * isValidSelector('div + >>> span') // false
6
6
  */
7
7
  export const isValidSelector = (selector) => {
8
- try {
9
- // this will error out if the selector is invalid in the DOM
10
- document.createDocumentFragment().querySelector(selector);
11
- }
12
- catch (e) {
13
- return false;
14
- }
15
- return true;
8
+ try {
9
+ // this will error out if the selector is invalid in the DOM
10
+ document.createDocumentFragment().querySelector(selector);
11
+ }
12
+ catch (e) {
13
+ return false;
14
+ }
15
+ return true;
16
16
  };
@@ -1,13 +1,13 @@
1
1
  export const jsonParse = (_data) => {
2
- if (typeof _data === 'string') {
3
- try {
4
- // eslint-disable-next-line no-restricted-syntax
5
- const json = JSON.parse(_data);
6
- return json;
2
+ if (typeof _data === 'string') {
3
+ try {
4
+ // eslint-disable-next-line no-restricted-syntax
5
+ const json = JSON.parse(_data);
6
+ return json;
7
+ }
8
+ catch (_error) {
9
+ return null;
10
+ }
7
11
  }
8
- catch (_error) {
9
- return null;
10
- }
11
- }
12
- return null;
12
+ return null;
13
13
  };
@@ -1,7 +1,7 @@
1
1
  import tinycolor from "tinycolor2";
2
2
  export const lightenColor = ({ amount = 10, color, }) => {
3
- // if color is a css variable, don't lighten it
4
- return color && !color.includes('var(--')
5
- ? tinycolor(color).lighten(amount).toString()
6
- : undefined;
3
+ // if color is a css variable, don't lighten it
4
+ return color && !color.includes('var(--')
5
+ ? tinycolor(color).lighten(amount).toString()
6
+ : undefined;
7
7
  };
@@ -1,24 +1,24 @@
1
1
  export const log = (message, type, ...additionalInfo) => {
2
- // if type is error and debug is false, do not log
3
- if (!window.Zonos.debug) {
4
- return;
5
- }
6
- switch (type) {
7
- case 'warn':
8
- // eslint-disable-next-line no-console
9
- console.warn(message, ...additionalInfo);
10
- break;
11
- case 'info':
12
- // eslint-disable-next-line no-console
13
- console.info(message, ...additionalInfo);
14
- break;
15
- default:
16
- // eslint-disable-next-line no-console
17
- console.groupCollapsed(message, ...additionalInfo);
18
- // eslint-disable-next-line no-console
19
- console.trace();
20
- // eslint-disable-next-line no-console
21
- console.groupEnd();
22
- break;
23
- }
2
+ // if type is error and debug is false, do not log
3
+ if (!window.Zonos.debug) {
4
+ return;
5
+ }
6
+ switch (type) {
7
+ case 'warn':
8
+ // eslint-disable-next-line no-console
9
+ console.warn(message, ...additionalInfo);
10
+ break;
11
+ case 'info':
12
+ // eslint-disable-next-line no-console
13
+ console.info(message, ...additionalInfo);
14
+ break;
15
+ default:
16
+ // eslint-disable-next-line no-console
17
+ console.groupCollapsed(message, ...additionalInfo);
18
+ // eslint-disable-next-line no-console
19
+ console.trace();
20
+ // eslint-disable-next-line no-console
21
+ console.groupEnd();
22
+ break;
23
+ }
24
24
  };
@@ -1,4 +1,4 @@
1
1
  export const logError = (message, ...rest) => {
2
- // eslint-disable-next-line no-console
3
- console.error(message, ...rest);
2
+ // eslint-disable-next-line no-console
3
+ console.error(message, ...rest);
4
4
  };
@@ -5,7 +5,7 @@ import merge from "lodash/merge";
5
5
  * @param value2[] List of objects to merge (need to have the same shape as value1)
6
6
  */
7
7
  export const mergeConfig = (defaultObj, fetchedObj, ...overrideObj) => {
8
- // filter out null and undefined values
9
- const overrideArgs = [defaultObj, fetchedObj, ...overrideObj].filter(Boolean);
10
- return merge.apply(null, overrideArgs);
8
+ // filter out null and undefined values
9
+ const overrideArgs = [defaultObj, fetchedObj, ...overrideObj].filter(Boolean);
10
+ return merge.apply(null, overrideArgs);
11
11
  };
@@ -4,13 +4,13 @@ import { log } from "./logging/log";
4
4
  * Submit a gtag event if the gtag function is available.
5
5
  */
6
6
  export const submitGtag = (event) => {
7
- const googleAnalyticSetting = zonosStore.checkoutSettings.analyticsProviders.find(item => item.type === 'GOOGLE_ANALYTICS');
8
- // only submit if googleAnalytic in checkout setting is on.
9
- if (!googleAnalyticSetting || (googleAnalyticSetting === null || googleAnalyticSetting === void 0 ? void 0 : googleAnalyticSetting.status) === 'DISABLED') {
10
- return;
11
- }
12
- if (typeof window.gtag === 'function') {
13
- log('Zonos submits gtag event', 'log', event);
14
- window.gtag('event', event, {});
15
- }
7
+ const googleAnalyticSetting = zonosStore.checkoutSettings.analyticsProviders.find(item => item.type === 'GOOGLE_ANALYTICS');
8
+ // only submit if googleAnalytic in checkout setting is on.
9
+ if (!googleAnalyticSetting || (googleAnalyticSetting === null || googleAnalyticSetting === void 0 ? void 0 : googleAnalyticSetting.status) === 'DISABLED') {
10
+ return;
11
+ }
12
+ if (typeof window.gtag === 'function') {
13
+ log('Zonos submits gtag event', 'log', event);
14
+ window.gtag('event', event, {});
15
+ }
16
16
  };
@@ -14,146 +14,168 @@ export const inVercel = !!process.env.VERCEL;
14
14
  export const inCI = !!process.env.CI;
15
15
  const isVercelPreview = inVercel && process.env.VERCEL_ENV === 'preview';
16
16
  export const isVercelProd = inVercel && process.env.VERCEL_ENV === 'production';
17
- let packageVersion = `${process.env.npm_package_version}` ||
18
- process.env.NEXT_PUBLIC_ZONOS_PACKAGE_VERSION;
17
+ const packageVersion = `${process.env.npm_package_version}` ||
18
+ process.env.NEXT_PUBLIC_ZONOS_PACKAGE_VERSION;
19
19
  const UNPKG_ZONOS_URL = `https://unpkg.com/@zonos/elements@${packageVersion}`;
20
- export const formattedUrl = ({ packageVersion: _packageVersion, type = 'full', url, }) => {
21
- if (!url) {
22
- // return origin value so t3 can throw error when it's empty
23
- return url;
24
- }
25
- const trimmedUrl = (_url) => _url === null || _url === void 0 ? void 0 : _url.replace('https://', '');
26
- const domainOnlyUrl = trimmedUrl(url);
27
- if (!inCI && !inVercel) {
28
- // local host environment, no need to format url
29
- return `https://${domainOnlyUrl}`;
30
- }
31
- // only run this in Vercel, ignore in CI
32
- if (isVercelPreview || (inVercel && type === 'vercel-git')) {
33
- // use vercel branch_url instead of the production url
34
- const vercelGitCommitMessage = process.env.VERCEL_GIT_COMMIT_MESSAGE;
35
- const branchName = process.env.VERCEL_GIT_COMMIT_REF;
36
- if (!vercelGitCommitMessage || !branchName) {
37
- throw new Error('Fail to get vercel commit ref or branch name');
20
+ const currentBranch = process.env.VERCEL_GIT_COMMIT_REF || process.env.BRANCH_NAME;
21
+ export const formattedUrl = ({ branchName, inCI: _inCI, inVercel: _inVercel, isVercelPreview: _isVercelPreview, packageVersion: _packageVersion, type = 'full', url, }) => {
22
+ if (!url) {
23
+ // return origin value so t3 can throw error when it's empty
24
+ return url;
38
25
  }
39
- // get project name based on the `${url}`
40
- const isStorybook =
41
- // url: storybook.js.zonos.com
42
- domainOnlyUrl.includes('storybook.js') ||
43
- // url: zonos-elements-storybook-git-something
44
- domainOnlyUrl.includes('storybook-git');
26
+ const trimmedUrl = (_url) => _url === null || _url === void 0 ? void 0 : _url.replace('https://', '');
27
+ const domainOnlyUrl = trimmedUrl(url);
28
+ if (!_inCI && !_inVercel) {
29
+ // local host environment, no need to format url
30
+ return `https://${domainOnlyUrl}`;
31
+ }
32
+ const isProdBranch = branchName && ['main', 'qa'].includes(branchName);
45
33
  const isServerless =
46
34
  // url: route.js.zonos.com
47
35
  domainOnlyUrl.includes('route.js') ||
48
- // url: zonos-elements-serverless-git-something
49
- domainOnlyUrl.includes('serverless-git');
50
- const projectName = isStorybook
51
- ? 'zonos-elements-storybook'
52
- : isServerless
53
- ? 'zonos-elements-serverless'
54
- : 'zonos-elements';
55
- // generate generated deploy url based on the branch name
56
- const vercelGitBranchSuffix = generateVercelDeployUrl({
57
- branchName,
58
- projectName,
59
- });
60
- return `https://${vercelGitBranchSuffix}`;
61
- }
62
- // only require package version in production and in CI, so that we still can use dev url (no version prefix).
63
- if (!_packageVersion && (isVercelProd || inCI)) {
64
- throw new Error('package version is required');
65
- }
66
- const version = type === 'major' ? `${_packageVersion === null || _packageVersion === void 0 ? void 0 : _packageVersion.split('.')[0]}` : _packageVersion;
67
- const isVersionedUrl = domainOnlyUrl === null || domainOnlyUrl === void 0 ? void 0 : domainOnlyUrl.startsWith('v');
68
- // only set version for the url once
69
- return (isVercelProd || inCI) && !isVersionedUrl
70
- ? `https://v${version}.${domainOnlyUrl}`
71
- : `https://${domainOnlyUrl}`;
36
+ // url: zonos-elements-serverless-git-something
37
+ domainOnlyUrl.includes('serverless-git');
38
+ if (branchName === 'qa' && isServerless) {
39
+ // qa branch for the API is not versioned, should always use the latest version
40
+ return `https://${domainOnlyUrl}`;
41
+ }
42
+ // only run this in Vercel (not production and alpha/qa branch)
43
+ if ((_isVercelPreview && !isProdBranch) ||
44
+ (_inVercel && type === 'vercel-git')) {
45
+ // use vercel branch_url instead of the production url
46
+ if (!branchName) {
47
+ throw new Error('Fail to get vercel commit ref or branch name');
48
+ }
49
+ // get project name based on the `${url}`
50
+ const isStorybook =
51
+ // url: storybook.js.zonos.com
52
+ domainOnlyUrl.includes('storybook.js') ||
53
+ // url: zonos-elements-storybook-git-something
54
+ domainOnlyUrl.includes('storybook-git');
55
+ const isTest =
56
+ // url: test.js.zonos.com
57
+ domainOnlyUrl.includes('test.') ||
58
+ // url: zonos-elements-test-git-something
59
+ domainOnlyUrl.includes('test-git') ||
60
+ // url: something.preview.js.zonos.com (this is only applicable on preview deployment of `zonos-elements` and `zonos-elements-test`)
61
+ domainOnlyUrl.includes('preview.js.zonos.com');
62
+ const projectName = isStorybook
63
+ ? 'zonos-elements-storybook'
64
+ : isServerless
65
+ ? 'zonos-elements-serverless'
66
+ : 'zonos-elements';
67
+ // add -test suffix for test environment
68
+ const fullProjectName = isTest ? `${projectName}-test` : projectName;
69
+ // generate generated deploy url based on the branch name
70
+ const vercelGitBranchSuffix = generateVercelDeployUrl({
71
+ branchName,
72
+ projectName: fullProjectName,
73
+ });
74
+ return `https://${vercelGitBranchSuffix}`;
75
+ }
76
+ // only require package version in production and in CI, so that we still can use dev url (no version prefix).
77
+ if (!_packageVersion && (isProdBranch || _inCI)) {
78
+ throw new Error('package version is required');
79
+ }
80
+ const version = type === 'major' ? `${_packageVersion === null || _packageVersion === void 0 ? void 0 : _packageVersion.split('.')[0]}` : _packageVersion;
81
+ const isVersionedUrl = domainOnlyUrl === null || domainOnlyUrl === void 0 ? void 0 : domainOnlyUrl.startsWith('v');
82
+ // only set version for the url once
83
+ return (isProdBranch || _inCI) && !isVersionedUrl
84
+ ? `https://v${version}.${domainOnlyUrl}`
85
+ : `https://${domainOnlyUrl}`;
72
86
  };
73
87
  if (typeof window === 'undefined') {
74
- // storybook can't access to any "node" modules
75
- config();
88
+ // storybook can't access to any "node" modules
89
+ config();
76
90
  }
77
91
  if (inVercel || inCI) {
78
- console.debug(JSON.stringify({
79
- CI: inCI,
80
- NODE_ENV: process.env.NODE_ENV,
81
- inVercel,
82
- packageVersion: packageVersion,
83
- }, null, 2));
92
+ console.debug(JSON.stringify({
93
+ CI: inCI,
94
+ NODE_ENV: process.env.NODE_ENV,
95
+ inVercel,
96
+ packageVersion: packageVersion,
97
+ }, null, 2));
84
98
  }
85
99
  const skipValidation = inTestEnvironment;
86
100
  if (!skipValidation) {
87
- console.debug('Checking env variables');
101
+ console.debug('Checking env variables');
88
102
  }
89
103
  else {
90
- console.debug('Skipping env validation');
104
+ console.debug('Skipping env validation');
91
105
  }
92
106
  const envClient = {
93
- NEXT_PUBLIC_FLAG_URL: z.string(),
94
- NEXT_PUBLIC_ZONOS_API_KEY: z.string(),
95
- NEXT_PUBLIC_ZONOS_CDN_URL: z.string(),
96
- NEXT_PUBLIC_ZONOS_PACKAGE_VERSION: z.string(),
97
- NEXT_PUBLIC_ZONOS_ROUTE_URL: z.string(),
98
- NEXT_PUBLIC_ZONOS_UNPKG_CDN_URL: z.string(),
107
+ NEXT_PUBLIC_FLAG_URL: z.string(),
108
+ NEXT_PUBLIC_ZONOS_API_KEY: z.string(),
109
+ NEXT_PUBLIC_ZONOS_CDN_URL: z.string(),
110
+ NEXT_PUBLIC_ZONOS_PACKAGE_VERSION: z.string(),
111
+ NEXT_PUBLIC_ZONOS_ROUTE_URL: z.string(),
112
+ NEXT_PUBLIC_ZONOS_UNPKG_CDN_URL: z.string(),
99
113
  };
100
114
  const envClientSchema = z.object(envClient);
101
115
  export const env = createEnv({
102
- skipValidation,
103
- // eslint-disable-next-line sort-keys/sort-keys-fix
104
- clientPrefix: 'NEXT_PUBLIC_',
105
- onInvalidAccess: variable => {
106
- throw new Error(`❌ Attempted to access a server-side environment variable on the client: ${variable}`);
107
- },
108
- onValidationError: error => {
109
- console.error('❌ Invalid environment variables:', error.flatten().fieldErrors);
110
- throw new Error('Invalid environment variables');
111
- },
112
- // eslint-disable-next-line sort-keys/sort-keys-fix
113
- client: envClient,
114
- // eslint-disable-next-line sort-keys/sort-keys-fix
115
- runtimeEnvStrict: {
116
- NEXT_PUBLIC_FLAG_URL: process.env.NEXT_PUBLIC_FLAG_URL,
117
- NEXT_PUBLIC_ZONOS_API_KEY: process.env.NEXT_PUBLIC_ZONOS_API_KEY,
118
- /**
119
- * Versioning url for production environment
120
- * @example v1.2.3.js.zonos.com
121
- */
122
- NEXT_PUBLIC_ZONOS_CDN_URL: formattedUrl({
123
- packageVersion,
124
- type: 'full',
125
- url: process.env.NEXT_PUBLIC_ZONOS_CDN_URL,
126
- }),
127
- NEXT_PUBLIC_ZONOS_PACKAGE_VERSION: packageVersion,
128
- /**
129
- * Versioning url for production environment (major version only for route.js.zonos.com)
130
- * @example v1.route.js.zonos.com
131
- */
132
- NEXT_PUBLIC_ZONOS_ROUTE_URL: formattedUrl({
133
- packageVersion,
134
- type: 'major',
135
- url: process.env.NEXT_PUBLIC_ZONOS_ROUTE_URL,
136
- }),
137
- NEXT_PUBLIC_ZONOS_UNPKG_CDN_URL: UNPKG_ZONOS_URL,
138
- },
116
+ skipValidation,
117
+ // eslint-disable-next-line sort-keys/sort-keys-fix
118
+ clientPrefix: 'NEXT_PUBLIC_',
119
+ onInvalidAccess: variable => {
120
+ throw new Error(`❌ Attempted to access a server-side environment variable on the client: ${variable}`);
121
+ },
122
+ onValidationError: error => {
123
+ console.error('❌ Invalid environment variables:', error.flatten().fieldErrors);
124
+ throw new Error('Invalid environment variables');
125
+ },
126
+ // eslint-disable-next-line sort-keys/sort-keys-fix
127
+ client: envClient,
128
+ // eslint-disable-next-line sort-keys/sort-keys-fix
129
+ runtimeEnvStrict: {
130
+ NEXT_PUBLIC_FLAG_URL: process.env.NEXT_PUBLIC_FLAG_URL,
131
+ NEXT_PUBLIC_ZONOS_API_KEY: process.env.NEXT_PUBLIC_ZONOS_API_KEY,
132
+ /**
133
+ * Versioning url for production environment
134
+ * @example v1.2.3.js.zonos.com
135
+ */
136
+ NEXT_PUBLIC_ZONOS_CDN_URL: formattedUrl({
137
+ branchName: currentBranch,
138
+ inCI,
139
+ inVercel,
140
+ isVercelPreview,
141
+ packageVersion,
142
+ type: 'full',
143
+ url: process.env.NEXT_PUBLIC_ZONOS_CDN_URL,
144
+ }),
145
+ NEXT_PUBLIC_ZONOS_PACKAGE_VERSION: packageVersion,
146
+ /**
147
+ * Versioning url for production environment (major version only for route.js.zonos.com)
148
+ * @example v1.route.js.zonos.com
149
+ */
150
+ NEXT_PUBLIC_ZONOS_ROUTE_URL: formattedUrl({
151
+ branchName: currentBranch,
152
+ inCI,
153
+ inVercel,
154
+ isVercelPreview,
155
+ packageVersion,
156
+ type: 'major',
157
+ url: process.env.NEXT_PUBLIC_ZONOS_ROUTE_URL,
158
+ }),
159
+ NEXT_PUBLIC_ZONOS_UNPKG_CDN_URL: UNPKG_ZONOS_URL,
160
+ },
139
161
  });
140
162
  /**
141
163
  * Env object that has all of native env variable used in code to replace them with
142
164
  * actual values from .env
143
165
  */
144
166
  export const getReplaceEnv = (props) => Object.keys(env).reduce((prev, curr) => {
145
- const currEnv = curr;
146
- const override = props === null || props === void 0 ? void 0 : props.override;
147
- const foundOverride = !!override && currEnv in override;
148
- // return the override value if it's found
149
- if (foundOverride) {
150
- // @ts-expect-error
151
- prev[`process.env.${currEnv}`] = `"${override[currEnv]}"`;
167
+ const currEnv = curr;
168
+ const override = props === null || props === void 0 ? void 0 : props.override;
169
+ const foundOverride = !!override && currEnv in override;
170
+ // return the override value if it's found
171
+ if (foundOverride) {
172
+ // @ts-expect-error
173
+ prev[`process.env.${currEnv}`] = `"${override[currEnv]}"`;
174
+ return prev;
175
+ }
176
+ if (currEnv) {
177
+ // @ts-expect-error
178
+ prev[`process.env.${currEnv}`] = `"${env[currEnv] || ''}"`;
179
+ }
152
180
  return prev;
153
- }
154
- if (currEnv) {
155
- // @ts-expect-error
156
- prev[`process.env.${currEnv}`] = `"${env[currEnv] || ''}"`;
157
- }
158
- return prev;
159
181
  }, {});
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Extracts the zonosQaUrl from the url
3
+ *
4
+ * @param url - url to extract zonosQaUrl from
5
+ *
6
+ * **NOTE**: value of zonosQaUrl param should be without protocol, allowed characters are: a-z, A-Z, 0-9, -, _
7
+ * @example
8
+ * valid: https://www.zonos.com/?zonosQaUrl=some-feature-v988
9
+ * invalid: https://www.zonos.com/?zonosQaUrl=https://zonos-something
10
+ */
11
+ export const extractZonosQaUrl = (url) => {
12
+ if (!url) {
13
+ return null;
14
+ }
15
+ // get params from url
16
+ const param = new URL(url).searchParams;
17
+ const zonosQaUrl = param.get('zonosQaUrl');
18
+ if (!zonosQaUrl) {
19
+ return null;
20
+ }
21
+ const hasInvalidCharacters = /[^a-zA-Z0-9-_]+/.test(zonosQaUrl);
22
+ if (!!hasInvalidCharacters) {
23
+ return null;
24
+ }
25
+ return zonosQaUrl;
26
+ };