@zonos/elements 1.2.3 → 1.2.4-alpha.10

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 (553) hide show
  1. package/README.md +15 -1
  2. package/dist/cjs/cart-90f7c8c0.js +644 -0
  3. package/dist/cjs/getBorderRadius-bf4a4276.js +18 -0
  4. package/dist/cjs/getHasMoreSpaceOnRight-4c94667f.js +10 -0
  5. package/dist/cjs/{index-9542d2e7.js → index-0dcccc22.js} +154 -42
  6. package/dist/cjs/index.cjs.js +6 -6
  7. package/dist/cjs/isColorVariable-41cacd82.js +16 -0
  8. package/dist/cjs/{isDarkColor-f3446afd.js → isDarkColor-ff6ff183.js} +2 -2
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/localization-9caf3397.js +3667 -0
  11. package/dist/cjs/submitGtag-b141b45d.js +27 -0
  12. package/dist/cjs/zonos-address_2.cjs.entry.js +108 -108
  13. package/dist/cjs/zonos-badge.cjs.entry.js +25 -22
  14. package/dist/cjs/zonos-banner.cjs.entry.js +65 -53
  15. package/dist/cjs/zonos-button_2.cjs.entry.js +100 -99
  16. package/dist/cjs/zonos-card_2.cjs.entry.js +32 -27
  17. package/dist/cjs/zonos-cart-items_10.cjs.entry.js +464 -419
  18. package/dist/cjs/zonos-checkout.cjs.entry.js +358 -356
  19. package/dist/cjs/zonos-component.cjs.entry.js +15 -15
  20. package/dist/cjs/zonos-controller.cjs.entry.js +232 -194
  21. package/dist/cjs/zonos-country-flag_4.cjs.entry.js +85 -77
  22. package/dist/cjs/zonos-elements.cjs.js +3 -3
  23. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +101 -101
  24. package/dist/cjs/zonos-hello.cjs.entry.js +349 -349
  25. package/dist/cjs/zonos-icon.cjs.entry.js +22 -20
  26. package/dist/cjs/zonos-notification.cjs.entry.js +60 -57
  27. package/dist/cjs/zonos-payment.cjs.entry.js +45 -45
  28. package/dist/cjs/zonos-shipping-rich-radio.cjs.entry.js +40 -40
  29. package/dist/cjs/zonos-text.cjs.entry.js +145 -143
  30. package/dist/cjs/{zonosStore-a430ec5b.js → zonosStore-b43ef5db.js} +102 -97
  31. package/dist/collection/__mocks__/vercel-app/loadZonos.js +492 -0
  32. package/dist/collection/__mocks__/vercel-app/localization.js +1 -0
  33. package/dist/collection/__mocks__/vercel-app/zonos-hello.entry.js +1 -0
  34. package/dist/collection/__mocks__/zonos-url/loadZonos.js +492 -0
  35. package/dist/{esm-es5/localization-f3828793.js → collection/__mocks__/zonos-url/localization.js} +1 -1
  36. package/dist/collection/__mocks__/zonos-url/zonos-hello.entry.js +1 -0
  37. package/dist/collection/__tests__/build-utils/urlCheckOne.js +59 -0
  38. package/dist/collection/collection-manifest.json +2 -2
  39. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.css +5 -1
  40. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +37 -37
  41. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.css +5 -1
  42. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +44 -44
  43. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.css +5 -1
  44. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +209 -163
  45. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.css +5 -1
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.js +149 -149
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.css +5 -1
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +562 -559
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.css +5 -1
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +153 -153
  51. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.css +5 -1
  52. package/dist/collection/components/checkout/zonos-checkout/zonos-review/zonos-review.js +107 -107
  53. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.css +5 -1
  54. package/dist/collection/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.js +164 -164
  55. package/dist/collection/components/common/countries.js +261 -261
  56. package/dist/collection/components/common/zonos-badge/zonos-badge.css +5 -1
  57. package/dist/collection/components/common/zonos-badge/zonos-badge.js +189 -186
  58. package/dist/collection/components/common/zonos-banner/zonos-banner.css +5 -1
  59. package/dist/collection/components/common/zonos-banner/zonos-banner.js +140 -128
  60. package/dist/collection/components/common/zonos-button/zonos-button.css +6 -5
  61. package/dist/collection/components/common/zonos-button/zonos-button.js +407 -406
  62. package/dist/collection/components/common/zonos-card/zonos-card.css +5 -1
  63. package/dist/collection/components/common/zonos-card/zonos-card.js +165 -162
  64. package/dist/collection/components/common/zonos-collapse/zonos-collapse.css +5 -1
  65. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +85 -83
  66. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.css +5 -1
  67. package/dist/collection/components/common/zonos-country-flag/zonos-country-flag.js +101 -96
  68. package/dist/collection/components/common/zonos-country-select/zonos-country-select.css +5 -1
  69. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +73 -70
  70. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.css +5 -1
  71. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +62 -59
  72. package/dist/collection/components/common/zonos-dialog/zonos-dialog.css +5 -1
  73. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +373 -371
  74. package/dist/collection/components/common/zonos-icon/zonos-icon.css +5 -1
  75. package/dist/collection/components/common/zonos-icon/zonos-icon.js +123 -121
  76. package/dist/collection/components/common/zonos-logo/zonos-logo.css +5 -1
  77. package/dist/collection/components/common/zonos-logo/zonos-logo.js +92 -90
  78. package/dist/collection/components/common/zonos-notification/zonos-notification.css +5 -1
  79. package/dist/collection/components/common/zonos-notification/zonos-notification.js +129 -125
  80. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.css +5 -1
  81. package/dist/collection/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.js +168 -168
  82. package/dist/collection/components/common/zonos-spinner/zonos-spinner.css +5 -1
  83. package/dist/collection/components/common/zonos-spinner/zonos-spinner.js +71 -71
  84. package/dist/collection/components/common/zonos-text/zonos-text.css +5 -1
  85. package/dist/collection/components/common/zonos-text/zonos-text.js +193 -191
  86. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.css +5 -1
  87. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +70 -67
  88. package/dist/collection/components/component-template/zonos-component/zonos-component.css +5 -1
  89. package/dist/collection/components/component-template/zonos-component/zonos-component.js +81 -81
  90. package/dist/collection/components/hello/zonos-hello/zonos-hello.css +5 -2
  91. package/dist/collection/components/hello/zonos-hello/zonos-hello.js +450 -446
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.css +5 -1
  93. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +70 -70
  94. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.css +5 -1
  95. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +272 -272
  96. package/dist/collection/components/main/zonos-controller.css +5 -1
  97. package/dist/collection/components/main/zonos-controller.js +403 -320
  98. package/dist/collection/components/store/checkout/cart.js +162 -162
  99. package/dist/collection/components/store/checkout/stripe.js +265 -264
  100. package/dist/collection/components/store/hello/localization.js +112 -112
  101. package/dist/collection/components/store/translationStore/strings.arabic.js +147 -147
  102. package/dist/collection/components/store/translationStore/strings.base.js +147 -147
  103. package/dist/collection/components/store/translationStore/strings.chinese.js +147 -147
  104. package/dist/collection/components/store/translationStore/strings.danish.js +147 -147
  105. package/dist/collection/components/store/translationStore/strings.dutch.js +147 -147
  106. package/dist/collection/components/store/translationStore/strings.french.js +147 -147
  107. package/dist/collection/components/store/translationStore/strings.german.js +147 -147
  108. package/dist/collection/components/store/translationStore/strings.hebrew.js +147 -147
  109. package/dist/collection/components/store/translationStore/strings.indonesian.js +147 -147
  110. package/dist/collection/components/store/translationStore/strings.italian.js +147 -147
  111. package/dist/collection/components/store/translationStore/strings.japanese.js +147 -147
  112. package/dist/collection/components/store/translationStore/strings.korean.js +147 -147
  113. package/dist/collection/components/store/translationStore/strings.norwegian.js +147 -147
  114. package/dist/collection/components/store/translationStore/strings.polish.js +147 -147
  115. package/dist/collection/components/store/translationStore/strings.portuguese.js +147 -147
  116. package/dist/collection/components/store/translationStore/strings.russian.js +147 -147
  117. package/dist/collection/components/store/translationStore/strings.spanish.js +147 -147
  118. package/dist/collection/components/store/translationStore/strings.swedish.js +147 -147
  119. package/dist/collection/components/store/translationStore/strings.turkish.js +147 -147
  120. package/dist/collection/components/store/translationStore/strings.vietnamese.js +147 -147
  121. package/dist/collection/components/store/translationStore.js +65 -65
  122. package/dist/collection/components/store/zonosStore.js +98 -94
  123. package/dist/collection/components/stripe/zonos-address/zonos-address.css +5 -1
  124. package/dist/collection/components/stripe/zonos-address/zonos-address.js +142 -142
  125. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.css +5 -1
  126. package/dist/collection/components/stripe/zonos-link-authentication/zonos-link-authentication.js +76 -76
  127. package/dist/collection/components/stripe/zonos-payment/zonos-payment.css +5 -1
  128. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +81 -81
  129. package/dist/collection/components/utils/addDays.js +5 -5
  130. package/dist/collection/components/utils/api/calculateLandedCost.js +19 -11
  131. package/dist/collection/components/utils/api/checkItemRestrictions.js +13 -13
  132. package/dist/collection/components/utils/api/getCountries.js +11 -11
  133. package/dist/collection/components/utils/api/getCountryLandedCost.js +11 -11
  134. package/dist/collection/components/utils/api/getExchangeRate.js +17 -17
  135. package/dist/collection/components/utils/api/getLocaleMessages.js +9 -9
  136. package/dist/collection/components/utils/api/getLocalization.js +24 -19
  137. package/dist/collection/components/utils/api/getShippingZones.js +9 -9
  138. package/dist/collection/components/utils/api/getZonosSettings.js +11 -0
  139. package/dist/collection/components/utils/api/prepCalculateLandedCost.js +26 -26
  140. package/dist/collection/components/utils/api/triggerBuildLandedCost.js +22 -0
  141. package/dist/collection/components/utils/checkout/initCheckout.js +16 -16
  142. package/dist/collection/components/utils/checkout/isCheckoutMobile.js +1 -1
  143. package/dist/collection/components/utils/darkenColor.js +4 -4
  144. package/dist/collection/components/utils/formatCurrency.js +8 -8
  145. package/dist/collection/components/utils/formatDate.js +2 -2
  146. package/dist/collection/components/utils/getBorderRadius.js +5 -5
  147. package/dist/collection/components/utils/getButtonTheme.js +8 -8
  148. package/dist/collection/components/utils/getDaysDifference.js +4 -4
  149. package/dist/collection/components/utils/handleFetch.js +107 -77
  150. package/dist/collection/components/utils/hello/currencyConversion/currencyConvert.js +9 -9
  151. package/dist/collection/components/utils/hello/currencyConversion/currencyConvertAndFormat.js +3 -3
  152. package/dist/collection/components/utils/hello/currencyConversion/currencyDisplay.js +10 -10
  153. package/dist/collection/components/utils/hello/currencyConversion/currencyFormat.js +29 -29
  154. package/dist/collection/components/utils/hello/currencyConversion/defaultCurrencyConverter.js +35 -35
  155. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyCode.js +6 -6
  156. package/dist/collection/components/utils/hello/currencyConversion/getCurrencyElements.js +13 -13
  157. package/dist/collection/components/utils/hello/currencyConversion/getInitialElementAmount.js +12 -12
  158. package/dist/collection/components/utils/hello/currencyConversion/getLanguageCode.js +6 -6
  159. package/dist/collection/components/utils/hello/detectItemRestrictions.js +23 -23
  160. package/dist/collection/components/utils/hello/getCurrentHelloLocalePage.js +17 -17
  161. package/dist/collection/components/utils/hello/getHasMoreSpaceAbove.js +5 -5
  162. package/dist/collection/components/utils/hello/getHasMoreSpaceOnRight.js +5 -5
  163. package/dist/collection/components/utils/hello/getProductsOnPage.js +42 -42
  164. package/dist/collection/components/utils/hello/getZCountryUrlParam.js +5 -0
  165. package/dist/collection/components/utils/hello/initHello.js +15 -15
  166. package/dist/collection/components/utils/hello/setZCountryUrlParam.js +9 -0
  167. package/dist/collection/components/utils/isColorVariable.js +10 -10
  168. package/dist/collection/components/utils/isDarkColor.js +1 -1
  169. package/dist/collection/components/utils/isValidSelector.js +8 -8
  170. package/dist/collection/components/utils/jsonParse.js +10 -10
  171. package/dist/collection/components/utils/lightenColor.js +4 -4
  172. package/dist/collection/components/utils/logging/log.js +42 -22
  173. package/dist/collection/components/utils/logging/logError.js +2 -2
  174. package/dist/collection/components/utils/mergeConfig.js +3 -3
  175. package/dist/collection/components/utils/submitGtag.js +9 -9
  176. package/dist/collection/environment.js +139 -116
  177. package/dist/collection/scripts/extractZonosQaUrl.js +26 -0
  178. package/dist/collection/scripts/loadStripe.js +7 -7
  179. package/dist/collection/scripts/stripe.js +80 -80
  180. package/dist/collection/scripts/zonos.js +331 -253
  181. package/dist/collection/styles/stripe/addressRuleStyle.js +14 -14
  182. package/dist/collection/styles/stripe/defaultVariable.js +14 -14
  183. package/dist/collection/types/generated/graphql.customer.types.js +1513 -1424
  184. package/dist/collection/types/generated/graphql.frontend.types.js +452 -378
  185. package/dist/collection/types/stripe/Apperance.js +56 -56
  186. package/dist/collection/types/styles/Color.js +18 -18
  187. package/dist/collection/types/styles/Text.js +97 -97
  188. package/dist/collection/utils/format.js +1 -1
  189. package/dist/collection/utils/generateVercelDeployUrl.js +17 -17
  190. package/dist/components/cart.js +529 -501
  191. package/dist/components/formatCurrency.js +8 -8
  192. package/dist/components/getBorderRadius.js +5 -5
  193. package/dist/components/isColorVariable.js +10 -10
  194. package/dist/components/isDarkColor.js +1 -1
  195. package/dist/components/localization.js +3486 -3426
  196. package/dist/components/submitGtag.js +9 -9
  197. package/dist/components/zonos-address.d.ts +2 -2
  198. package/dist/components/zonos-address2.js +90 -90
  199. package/dist/components/zonos-badge.d.ts +2 -2
  200. package/dist/components/zonos-badge2.js +52 -43
  201. package/dist/components/zonos-banner.d.ts +2 -2
  202. package/dist/components/zonos-banner2.js +88 -76
  203. package/dist/components/zonos-button.d.ts +2 -2
  204. package/dist/components/zonos-button2.js +120 -119
  205. package/dist/components/zonos-card.d.ts +2 -2
  206. package/dist/components/zonos-card2.js +48 -39
  207. package/dist/components/zonos-cart-items.d.ts +2 -2
  208. package/dist/components/zonos-cart-items2.js +43 -43
  209. package/dist/components/zonos-cart-subtotal.d.ts +2 -2
  210. package/dist/components/zonos-cart-subtotal2.js +65 -65
  211. package/dist/components/zonos-checkout-finish.d.ts +2 -2
  212. package/dist/components/zonos-checkout-finish2.js +146 -103
  213. package/dist/components/zonos-checkout-payment.d.ts +2 -2
  214. package/dist/components/zonos-checkout-payment2.js +82 -82
  215. package/dist/components/zonos-checkout.d.ts +2 -2
  216. package/dist/components/zonos-checkout.js +500 -498
  217. package/dist/components/zonos-collapse.d.ts +2 -2
  218. package/dist/components/zonos-collapse2.js +48 -46
  219. package/dist/components/zonos-component.d.ts +2 -2
  220. package/dist/components/zonos-component.js +32 -32
  221. package/dist/components/zonos-controller.d.ts +2 -2
  222. package/dist/components/zonos-controller.js +260 -220
  223. package/dist/components/zonos-country-flag.d.ts +2 -2
  224. package/dist/components/zonos-country-flag2.js +41 -36
  225. package/dist/components/zonos-country-select.d.ts +2 -2
  226. package/dist/components/zonos-country-select2.js +82 -79
  227. package/dist/components/zonos-custom-message.d.ts +2 -2
  228. package/dist/components/zonos-custom-message2.js +44 -41
  229. package/dist/components/zonos-customer-info.d.ts +2 -2
  230. package/dist/components/zonos-customer-info2.js +82 -82
  231. package/dist/components/zonos-dialog.d.ts +2 -2
  232. package/dist/components/zonos-dialog2.js +105 -103
  233. package/dist/components/zonos-hello-dialog-footer.d.ts +2 -2
  234. package/dist/components/zonos-hello-dialog-footer2.js +46 -46
  235. package/dist/components/zonos-hello-dialog.d.ts +2 -2
  236. package/dist/components/zonos-hello-dialog2.js +182 -182
  237. package/dist/components/zonos-hello.d.ts +2 -2
  238. package/dist/components/zonos-hello.js +437 -437
  239. package/dist/components/zonos-icon.d.ts +2 -2
  240. package/dist/components/zonos-icon2.js +40 -38
  241. package/dist/components/zonos-link-authentication.d.ts +2 -2
  242. package/dist/components/zonos-link-authentication2.js +60 -60
  243. package/dist/components/zonos-logo.d.ts +2 -2
  244. package/dist/components/zonos-logo2.js +37 -35
  245. package/dist/components/zonos-notification.d.ts +2 -2
  246. package/dist/components/zonos-notification2.js +82 -79
  247. package/dist/components/zonos-payment.d.ts +2 -2
  248. package/dist/components/zonos-payment2.js +64 -64
  249. package/dist/components/zonos-review.d.ts +2 -2
  250. package/dist/components/zonos-review2.js +72 -72
  251. package/dist/components/zonos-shipping-rich-radio.d.ts +2 -2
  252. package/dist/components/zonos-shipping-rich-radio2.js +62 -62
  253. package/dist/components/zonos-shipping.d.ts +2 -2
  254. package/dist/components/zonos-shipping2.js +114 -114
  255. package/dist/components/zonos-spinner.d.ts +2 -2
  256. package/dist/components/zonos-spinner2.js +31 -31
  257. package/dist/components/zonos-text.d.ts +2 -2
  258. package/dist/components/zonos-text2.js +166 -164
  259. package/dist/components/zonos-v-stack.d.ts +2 -2
  260. package/dist/components/zonos-v-stack2.js +29 -26
  261. package/dist/components/zonosStore.js +101 -97
  262. package/dist/esm/cart-b439be00.js +626 -0
  263. package/dist/esm/getBorderRadius-178a0a05.js +16 -0
  264. package/dist/esm/getHasMoreSpaceOnRight-70eb913a.js +8 -0
  265. package/dist/esm/{index-d1aa9293.js → index-36ff6342.js} +154 -42
  266. package/dist/esm/index.js +6 -6
  267. package/dist/esm/isColorVariable-91c33804.js +14 -0
  268. package/dist/esm/{isDarkColor-6fbb9b14.js → isDarkColor-416d6047.js} +2 -2
  269. package/dist/esm/loader.js +3 -3
  270. package/dist/esm/localization-a51ccbc2.js +3652 -0
  271. package/dist/esm/submitGtag-521826a2.js +24 -0
  272. package/dist/esm/zonos-address_2.entry.js +108 -108
  273. package/dist/esm/zonos-badge.entry.js +25 -22
  274. package/dist/esm/zonos-banner.entry.js +65 -53
  275. package/dist/esm/zonos-button_2.entry.js +100 -99
  276. package/dist/esm/zonos-card_2.entry.js +32 -27
  277. package/dist/esm/zonos-cart-items_10.entry.js +464 -419
  278. package/dist/esm/zonos-checkout.entry.js +358 -356
  279. package/dist/esm/zonos-component.entry.js +15 -15
  280. package/dist/esm/zonos-controller.entry.js +232 -194
  281. package/dist/esm/zonos-country-flag_4.entry.js +85 -77
  282. package/dist/esm/zonos-elements.js +4 -4
  283. package/dist/esm/zonos-hello-dialog.entry.js +101 -101
  284. package/dist/esm/zonos-hello.entry.js +349 -349
  285. package/dist/esm/zonos-icon.entry.js +22 -20
  286. package/dist/esm/zonos-notification.entry.js +60 -57
  287. package/dist/esm/zonos-payment.entry.js +45 -45
  288. package/dist/esm/zonos-shipping-rich-radio.entry.js +40 -40
  289. package/dist/esm/zonos-text.entry.js +145 -143
  290. package/dist/esm/{zonosStore-05a62104.js → zonosStore-61e74f58.js} +102 -98
  291. package/dist/esm-es5/cart-b439be00.js +1 -0
  292. package/dist/esm-es5/getBorderRadius-178a0a05.js +1 -0
  293. package/dist/esm-es5/getHasMoreSpaceOnRight-70eb913a.js +1 -0
  294. package/dist/esm-es5/index-36ff6342.js +2 -0
  295. package/dist/esm-es5/index.js +1 -1
  296. package/dist/esm-es5/{isDarkColor-6fbb9b14.js → isDarkColor-416d6047.js} +1 -1
  297. package/dist/esm-es5/loader.js +1 -1
  298. package/dist/esm-es5/localization-a51ccbc2.js +1 -0
  299. package/dist/esm-es5/{submitGtag-a901ece5.js → submitGtag-521826a2.js} +1 -1
  300. package/dist/esm-es5/zonos-address_2.entry.js +1 -1
  301. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  302. package/dist/esm-es5/zonos-banner.entry.js +1 -1
  303. package/dist/esm-es5/zonos-button_2.entry.js +1 -1
  304. package/dist/esm-es5/zonos-card_2.entry.js +1 -1
  305. package/dist/esm-es5/zonos-cart-items_10.entry.js +1 -1
  306. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  307. package/dist/esm-es5/zonos-component.entry.js +1 -1
  308. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  309. package/dist/esm-es5/zonos-country-flag_4.entry.js +1 -1
  310. package/dist/esm-es5/zonos-elements.js +1 -1
  311. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  312. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  313. package/dist/esm-es5/zonos-icon.entry.js +1 -1
  314. package/dist/esm-es5/zonos-notification.entry.js +1 -1
  315. package/dist/esm-es5/zonos-payment.entry.js +1 -1
  316. package/dist/esm-es5/zonos-shipping-rich-radio.entry.js +1 -1
  317. package/dist/esm-es5/zonos-text.entry.js +1 -1
  318. package/dist/esm-es5/zonosStore-61e74f58.js +1 -0
  319. package/dist/scripts/extractZonosQaUrl.js +30 -0
  320. package/dist/scripts/loadZonos.js +172 -48
  321. package/dist/scripts/zonos.js +172 -48
  322. package/dist/types/__tests__/build-utils/urlCheckOne.d.ts +6 -0
  323. package/dist/types/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.d.ts +2 -2
  324. package/dist/types/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.d.ts +1 -1
  325. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.d.ts +33 -29
  326. package/dist/types/components/checkout/zonos-checkout/zonos-checkout-payment/zonos-checkout-payment.d.ts +31 -31
  327. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +77 -77
  328. package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +31 -31
  329. package/dist/types/components/checkout/zonos-checkout/zonos-review/zonos-review.d.ts +14 -14
  330. package/dist/types/components/checkout/zonos-checkout/zonos-shipping/zonos-shipping.d.ts +29 -29
  331. package/dist/types/components/common/zonos-badge/zonos-badge.d.ts +35 -35
  332. package/dist/types/components/common/zonos-banner/zonos-banner.d.ts +21 -21
  333. package/dist/types/components/common/zonos-button/zonos-button.d.ts +92 -92
  334. package/dist/types/components/common/zonos-card/zonos-card.d.ts +29 -29
  335. package/dist/types/components/common/zonos-collapse/zonos-collapse.d.ts +14 -14
  336. package/dist/types/components/common/zonos-country-flag/zonos-country-flag.d.ts +16 -16
  337. package/dist/types/components/common/zonos-country-select/zonos-country-select.d.ts +9 -9
  338. package/dist/types/components/common/zonos-custom-message/zonos-custom-message.d.ts +9 -9
  339. package/dist/types/components/common/zonos-dialog/zonos-dialog.d.ts +75 -75
  340. package/dist/types/components/common/zonos-icon/zonos-icon.d.ts +27 -27
  341. package/dist/types/components/common/zonos-logo/zonos-logo.d.ts +13 -13
  342. package/dist/types/components/common/zonos-notification/zonos-notification.d.ts +28 -28
  343. package/dist/types/components/common/zonos-shipping-rich-radio/zonos-shipping-rich-radio.d.ts +35 -35
  344. package/dist/types/components/common/zonos-spinner/zonos-spinner.d.ts +11 -11
  345. package/dist/types/components/common/zonos-text/zonos-text.d.ts +30 -30
  346. package/dist/types/components/common/zonos-v-stack/zonos-v-stack.d.ts +10 -10
  347. package/dist/types/components/component-template/zonos-component/zonos-component.d.ts +14 -14
  348. package/dist/types/components/hello/zonos-hello/zonos-hello.d.ts +68 -68
  349. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.d.ts +10 -10
  350. package/dist/types/components/hello/zonos-hello-dialog/zonos-hello-dialog.d.ts +41 -41
  351. package/dist/types/components/main/zonos-controller.d.ts +47 -38
  352. package/dist/types/components/store/checkout/cart.d.ts +64 -64
  353. package/dist/types/components/store/checkout/stripe.d.ts +44 -43
  354. package/dist/types/components/store/hello/localization.d.ts +15 -15
  355. package/dist/types/components/store/translationStore/strings.arabic.d.ts +147 -147
  356. package/dist/types/components/store/translationStore/strings.base.d.ts +147 -147
  357. package/dist/types/components/store/translationStore/strings.chinese.d.ts +147 -147
  358. package/dist/types/components/store/translationStore/strings.danish.d.ts +147 -147
  359. package/dist/types/components/store/translationStore/strings.dutch.d.ts +147 -147
  360. package/dist/types/components/store/translationStore/strings.french.d.ts +147 -147
  361. package/dist/types/components/store/translationStore/strings.german.d.ts +147 -147
  362. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +147 -147
  363. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +147 -147
  364. package/dist/types/components/store/translationStore/strings.italian.d.ts +147 -147
  365. package/dist/types/components/store/translationStore/strings.japanese.d.ts +147 -147
  366. package/dist/types/components/store/translationStore/strings.korean.d.ts +147 -147
  367. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +147 -147
  368. package/dist/types/components/store/translationStore/strings.polish.d.ts +147 -147
  369. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +147 -147
  370. package/dist/types/components/store/translationStore/strings.russian.d.ts +147 -147
  371. package/dist/types/components/store/translationStore/strings.spanish.d.ts +147 -147
  372. package/dist/types/components/store/translationStore/strings.swedish.d.ts +147 -147
  373. package/dist/types/components/store/translationStore/strings.turkish.d.ts +147 -147
  374. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +147 -147
  375. package/dist/types/components/store/translationStore.d.ts +2 -2
  376. package/dist/types/components/store/zonosStore.d.ts +23 -22
  377. package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +17 -17
  378. package/dist/types/components/stripe/zonos-link-authentication/zonos-link-authentication.d.ts +9 -9
  379. package/dist/types/components/stripe/zonos-payment/zonos-payment.d.ts +10 -10
  380. package/dist/types/components/utils/addDays.d.ts +6 -6
  381. package/dist/types/components/utils/api/checkItemRestrictions.d.ts +14 -14
  382. package/dist/types/components/utils/api/getCountryLandedCost.d.ts +6 -6
  383. package/dist/types/components/utils/api/getExchangeRate.d.ts +17 -17
  384. package/dist/types/components/utils/api/getLocaleMessages.d.ts +15 -15
  385. package/dist/types/components/utils/api/getLocalization.d.ts +2 -2
  386. package/dist/types/components/utils/api/getZonosSettings.d.ts +8 -0
  387. package/dist/types/components/utils/api/triggerBuildLandedCost.d.ts +5 -0
  388. package/dist/types/components/utils/changeDeepProperty.d.ts +4 -4
  389. package/dist/types/components/utils/changeDeepPropertyAtIndex.d.ts +5 -5
  390. package/dist/types/components/utils/darkenColor.d.ts +2 -2
  391. package/dist/types/components/utils/formatCurrency.d.ts +3 -3
  392. package/dist/types/components/utils/formatDate.d.ts +6 -6
  393. package/dist/types/components/utils/handleFetch.d.ts +7 -7
  394. package/dist/types/components/utils/hello/detectItemRestrictions.d.ts +10 -10
  395. package/dist/types/components/utils/hello/getZCountryUrlParam.d.ts +2 -0
  396. package/dist/types/components/utils/hello/setZCountryUrlParam.d.ts +2 -0
  397. package/dist/types/components/utils/lightenColor.d.ts +2 -2
  398. package/dist/types/components/utils/mergeConfig.d.ts +1 -1
  399. package/dist/types/components/utils/submitGtag.d.ts +3 -3
  400. package/dist/types/components.d.ts +96 -0
  401. package/dist/types/environment.d.ts +39 -34
  402. package/dist/types/scripts/extractZonosQaUrl.d.ts +11 -0
  403. package/dist/types/scripts/stripe.d.ts +2 -2
  404. package/dist/types/scripts/zonos.d.ts +51 -40
  405. package/dist/types/stencil-public-runtime.d.ts +29 -0
  406. package/dist/types/styles/stripe/addressRuleStyle.d.ts +1 -1
  407. package/dist/types/styles/stripe/defaultVariable.d.ts +2 -2
  408. package/dist/types/types/ICountryJson.d.ts +20 -20
  409. package/dist/types/types/JsonError.d.ts +3 -3
  410. package/dist/types/types/Translation.d.ts +1 -1
  411. package/dist/types/types/checkout/CheckoutConfig.d.ts +55 -53
  412. package/dist/types/types/checkout/api/CalculateLandedCostRequest.d.ts +16 -16
  413. package/dist/types/types/generated/graphql.customer.types.d.ts +2217 -1970
  414. package/dist/types/types/generated/graphql.customer.types.ts +310 -7
  415. package/dist/types/types/generated/graphql.frontend.types.d.ts +649 -450
  416. package/dist/types/types/generated/graphql.frontend.types.ts +358 -11
  417. package/dist/types/types/global.d.ts +12 -0
  418. package/dist/types/types/hello/HelloConfig.d.ts +20 -20
  419. package/dist/types/types/hello/Product.d.ts +3 -3
  420. package/dist/types/types/hello/RestrictedItem.d.ts +1 -1
  421. package/dist/types/types/online-store/OnlineStoreConfig.d.ts +1 -1
  422. package/dist/types/types/stripe/Apperance.d.ts +3 -3
  423. package/dist/types/types/styles/Text.d.ts +90 -90
  424. package/dist/types/types/utils/deep/IDeepKeyof.d.ts +1 -1
  425. package/dist/types/types/utils/deep/IDeepKeyofAtIndex.d.ts +2 -2
  426. package/dist/types/utils/generateVercelDeployUrl.d.ts +2 -2
  427. package/dist/zonos-elements/assets/RemoveIcon.svg +1 -1
  428. package/dist/zonos-elements/index.esm.js +1 -1
  429. package/dist/zonos-elements/p-06fb9d1f.system.entry.js +1 -0
  430. package/dist/zonos-elements/{p-08695f4e.js → p-089ba905.js} +1 -1
  431. package/dist/zonos-elements/{p-f7875c40.js → p-1685c8df.js} +1 -1
  432. package/dist/zonos-elements/p-18904b7c.system.js +2 -0
  433. package/dist/zonos-elements/p-1d4a970b.entry.js +1 -0
  434. package/dist/zonos-elements/p-23e7c655.system.js +1 -1
  435. package/dist/zonos-elements/p-24eed2a8.system.js +1 -0
  436. package/dist/zonos-elements/p-24fbe845.system.js +1 -0
  437. package/dist/zonos-elements/p-2801d868.entry.js +1 -0
  438. package/dist/zonos-elements/p-2a307c55.system.entry.js +1 -0
  439. package/dist/zonos-elements/p-2f43da39.system.entry.js +1 -0
  440. package/dist/zonos-elements/{p-770c959e.js → p-3c6988d7.js} +1 -1
  441. package/dist/zonos-elements/p-3cea383b.system.entry.js +1 -0
  442. package/dist/zonos-elements/p-47390db7.system.entry.js +1 -0
  443. package/dist/zonos-elements/p-4846796a.js +1 -0
  444. package/dist/zonos-elements/p-494c77a7.entry.js +1 -0
  445. package/dist/zonos-elements/p-49f09b91.entry.js +1 -0
  446. package/dist/zonos-elements/p-4a15c5c7.system.entry.js +1 -0
  447. package/dist/zonos-elements/p-4bee0bff.system.entry.js +1 -0
  448. package/dist/zonos-elements/p-4d93275c.entry.js +1 -0
  449. package/dist/zonos-elements/p-4ed71bd7.entry.js +1 -0
  450. package/dist/zonos-elements/{p-bf070bf6.js → p-55f49f1e.js} +1 -1
  451. package/dist/zonos-elements/p-560aa686.system.entry.js +1 -0
  452. package/dist/zonos-elements/p-639396bb.entry.js +1 -0
  453. package/dist/zonos-elements/p-67154df2.system.entry.js +1 -0
  454. package/dist/zonos-elements/p-67aec665.entry.js +1 -0
  455. package/dist/zonos-elements/p-684ed483.entry.js +1 -0
  456. package/dist/zonos-elements/p-89c210d6.entry.js +1 -0
  457. package/dist/zonos-elements/p-8c48b75e.system.js +1 -0
  458. package/dist/zonos-elements/p-8c5595d9.system.entry.js +1 -0
  459. package/dist/zonos-elements/p-938803f4.entry.js +1 -0
  460. package/dist/zonos-elements/p-956efa27.js +2 -0
  461. package/dist/zonos-elements/{p-3f3fbcea.entry.js → p-a0e36ed3.entry.js} +1 -1
  462. package/dist/zonos-elements/p-a376a37f.entry.js +1 -0
  463. package/dist/zonos-elements/p-a504f64f.system.js +1 -0
  464. package/dist/zonos-elements/p-afe26069.entry.js +1 -0
  465. package/dist/zonos-elements/p-b4601210.system.entry.js +1 -0
  466. package/dist/zonos-elements/{p-164fae93.system.js → p-b51de536.system.js} +1 -1
  467. package/dist/zonos-elements/p-b6148206.entry.js +1 -0
  468. package/dist/zonos-elements/p-b85be1ab.system.js +1 -0
  469. package/dist/zonos-elements/p-bc7bf53e.system.js +1 -0
  470. package/dist/zonos-elements/p-c9348bb0.system.entry.js +1 -0
  471. package/dist/zonos-elements/p-d2217f09.system.js +1 -0
  472. package/dist/zonos-elements/p-d856a200.system.entry.js +1 -0
  473. package/dist/zonos-elements/{p-85ab35c9.system.js → p-da060b1c.system.js} +1 -1
  474. package/dist/zonos-elements/p-e1f6ab97.entry.js +1 -0
  475. package/dist/zonos-elements/p-e5ae22a9.system.entry.js +1 -0
  476. package/dist/zonos-elements/p-e98be2d0.system.entry.js +1 -0
  477. package/dist/zonos-elements/p-e9b832c5.entry.js +1 -0
  478. package/dist/zonos-elements/p-edbea8df.system.js +1 -0
  479. package/dist/zonos-elements/p-f141519c.system.entry.js +1 -0
  480. package/dist/zonos-elements/p-f367f2fe.system.entry.js +1 -0
  481. package/dist/zonos-elements/p-ff95f098.js +1 -0
  482. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  483. package/dist/zonos-elements/zonos-elements.js +15 -15
  484. package/package.json +60 -58
  485. package/dist/cjs/cart-55512e32.js +0 -616
  486. package/dist/cjs/getBorderRadius-fdd605c6.js +0 -18
  487. package/dist/cjs/getHasMoreSpaceOnRight-2855491b.js +0 -10
  488. package/dist/cjs/isColorVariable-c1ed7303.js +0 -16
  489. package/dist/cjs/localization-d7fe7290.js +0 -3606
  490. package/dist/cjs/submitGtag-d65003f9.js +0 -27
  491. package/dist/collection/components/utils/api/getZonosSetting.js +0 -11
  492. package/dist/collection/components/utils/hello/setZonosCountryUrlParam.js +0 -9
  493. package/dist/esm/cart-17650017.js +0 -598
  494. package/dist/esm/getBorderRadius-45764ad7.js +0 -16
  495. package/dist/esm/getHasMoreSpaceOnRight-feba1ae2.js +0 -8
  496. package/dist/esm/isColorVariable-4cda28c9.js +0 -14
  497. package/dist/esm/localization-f3828793.js +0 -3592
  498. package/dist/esm/submitGtag-a901ece5.js +0 -24
  499. package/dist/esm-es5/cart-17650017.js +0 -1
  500. package/dist/esm-es5/getBorderRadius-45764ad7.js +0 -1
  501. package/dist/esm-es5/getHasMoreSpaceOnRight-feba1ae2.js +0 -1
  502. package/dist/esm-es5/index-d1aa9293.js +0 -2
  503. package/dist/esm-es5/zonosStore-05a62104.js +0 -1
  504. package/dist/types/components/utils/api/getZonosSetting.d.ts +0 -8
  505. package/dist/types/components/utils/hello/setZonosCountryUrlParam.d.ts +0 -2
  506. package/dist/zonos-elements/p-0190f7c4.entry.js +0 -1
  507. package/dist/zonos-elements/p-0e0b46a5.js +0 -1
  508. package/dist/zonos-elements/p-0ed3bb9f.system.entry.js +0 -1
  509. package/dist/zonos-elements/p-15b71f0b.system.entry.js +0 -1
  510. package/dist/zonos-elements/p-224125da.system.entry.js +0 -1
  511. package/dist/zonos-elements/p-23204b78.system.entry.js +0 -1
  512. package/dist/zonos-elements/p-28681677.entry.js +0 -1
  513. package/dist/zonos-elements/p-2b6325ab.entry.js +0 -1
  514. package/dist/zonos-elements/p-36425562.system.entry.js +0 -1
  515. package/dist/zonos-elements/p-3a56c240.entry.js +0 -1
  516. package/dist/zonos-elements/p-43a25dab.entry.js +0 -1
  517. package/dist/zonos-elements/p-4a5096d2.system.js +0 -1
  518. package/dist/zonos-elements/p-64fdb7b6.system.js +0 -1
  519. package/dist/zonos-elements/p-68d06767.system.js +0 -2
  520. package/dist/zonos-elements/p-6d82986c.system.entry.js +0 -1
  521. package/dist/zonos-elements/p-6dcd752e.system.js +0 -1
  522. package/dist/zonos-elements/p-6e7cd3f7.entry.js +0 -1
  523. package/dist/zonos-elements/p-7bacecf7.entry.js +0 -1
  524. package/dist/zonos-elements/p-824395fd.system.entry.js +0 -1
  525. package/dist/zonos-elements/p-8378d94e.js +0 -1
  526. package/dist/zonos-elements/p-84b00605.system.entry.js +0 -1
  527. package/dist/zonos-elements/p-8a75b765.system.entry.js +0 -1
  528. package/dist/zonos-elements/p-8aabbb9b.system.js +0 -1
  529. package/dist/zonos-elements/p-8b415737.system.entry.js +0 -1
  530. package/dist/zonos-elements/p-8c867835.system.js +0 -1
  531. package/dist/zonos-elements/p-9202375f.entry.js +0 -1
  532. package/dist/zonos-elements/p-9688bb12.entry.js +0 -1
  533. package/dist/zonos-elements/p-98a6e093.system.entry.js +0 -1
  534. package/dist/zonos-elements/p-a1fa50fb.entry.js +0 -1
  535. package/dist/zonos-elements/p-aca66238.system.entry.js +0 -1
  536. package/dist/zonos-elements/p-b618cf03.entry.js +0 -1
  537. package/dist/zonos-elements/p-b75ffe64.system.entry.js +0 -1
  538. package/dist/zonos-elements/p-bc2c42f5.entry.js +0 -1
  539. package/dist/zonos-elements/p-c8ad044e.system.entry.js +0 -1
  540. package/dist/zonos-elements/p-cc070c1c.entry.js +0 -1
  541. package/dist/zonos-elements/p-cc1c785c.system.entry.js +0 -1
  542. package/dist/zonos-elements/p-cd71e41e.entry.js +0 -1
  543. package/dist/zonos-elements/p-cf97cc68.system.entry.js +0 -1
  544. package/dist/zonos-elements/p-d6b8563b.system.entry.js +0 -1
  545. package/dist/zonos-elements/p-dc8d7000.js +0 -2
  546. package/dist/zonos-elements/p-e5908de2.entry.js +0 -1
  547. package/dist/zonos-elements/p-f6add79c.system.js +0 -1
  548. package/dist/zonos-elements/p-f8491335.system.js +0 -1
  549. package/dist/zonos-elements/p-f868ed42.entry.js +0 -1
  550. package/dist/zonos-elements/p-f95ac9ec.system.js +0 -1
  551. /package/dist/esm-es5/{isColorVariable-4cda28c9.js → isColorVariable-91c33804.js} +0 -0
  552. /package/dist/zonos-elements/{p-0636859b.js → p-4c414a92.js} +0 -0
  553. /package/dist/zonos-elements/{p-b6c499d4.js → p-5883217a.js} +0 -0
@@ -1,45 +1,42 @@
1
1
  var _a;
2
2
  import { log } from "../components/utils/logging/log";
3
3
  import { logError } from "../components/utils/logging/logError";
4
+ import { extractZonosQaUrl } from "./extractZonosQaUrl";
4
5
  import { zonosLoadStripe } from "./loadStripe";
5
- // 3 hours
6
- const EXPIRED_QA_TIME = 3 * 60 * 60 * 1000;
7
- // validate the time format (yyyymmddhhmmss) in the qa params if exceeds 1 hour, don't use qa
8
- const isZonosQa = (() => {
9
- const zonosQaTime = window.location.search.match(/\?.*(&*)zonosQa=(\d+)/);
10
- if (!zonosQaTime) {
11
- return false;
12
- }
13
- const [, , zonosQaTimeExtracted] = zonosQaTime;
14
- if (!zonosQaTimeExtracted) {
15
- return false;
16
- }
17
- const zonosQaTimeValue = parseInt(zonosQaTimeExtracted, 10);
18
- const now = new Date();
19
- const nowTime = now.getTime();
20
- const isValid = nowTime - zonosQaTimeValue < EXPIRED_QA_TIME;
21
- if (isValid) {
22
- // Zonos class is not available in here yet, so we use console.warn instead of log util
23
- // eslint-disable-next-line no-console
24
- console.warn(`[ZONOS-WARNING] USING DEBUG DOMAIN, THIS IS ONLY FOR ZONOS DEVELOPER TO DEBUG, PLEASE REMOVE zonosQa=xxx OUT OF URL IF YOU DON'T KNOW WHAT YOU'RE DOING`);
25
- }
26
- else {
27
- // Zonos class is not available in here yet, so we use console.warn instead of log util
6
+ const zonosQaUrl = (() => {
7
+ const qaUrl = extractZonosQaUrl(window.location.href);
8
+ if (!qaUrl) {
9
+ return null;
10
+ }
11
+ const suffixDomain = 'preview.js.zonos.com';
12
+ const fullUrl = `https://${qaUrl}.${suffixDomain}`;
28
13
  // eslint-disable-next-line no-console
29
- console.warn(`[ZONOS-WARNING] QA DOMAIN IS EXPIRED, USING PRODUCTION DOMAIN NOW`);
30
- // remove the zonosQa param from url
31
- const urlSearchParams = new URLSearchParams(window.location.search);
32
- urlSearchParams.delete('zonosQa');
33
- const newUrl = `${window.location.pathname}?${urlSearchParams.toString()}`;
34
- window.history.replaceState({}, '', newUrl);
35
- }
36
- return isValid;
14
+ console.warn(`[ZONOS-WARNING] using '${fullUrl}' for loading script`);
15
+ // request to the url and check if the request has an error
16
+ void fetch(fullUrl)
17
+ .then(() => {
18
+ // cleanup checkout session to avoid using the prod session in preview domain
19
+ window.sessionStorage.removeItem('zonos--checkout-session-id');
20
+ window.sessionStorage.removeItem('zonos--client-secret');
21
+ })
22
+ .catch(() => {
23
+ // eslint-disable-next-line no-console
24
+ alert(`[ZONOS-WARNING] '${fullUrl}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);
25
+ // remove the zonosQaUrl param from url
26
+ const urlSearchParams = new URLSearchParams(window.location.search);
27
+ urlSearchParams.delete('zonosQaUrl');
28
+ const { pathname } = window.location;
29
+ const newUrl = `${pathname}?${urlSearchParams.toString()}`;
30
+ window.history.replaceState({}, '', newUrl);
31
+ window.location.reload();
32
+ return null;
33
+ });
34
+ return fullUrl;
37
35
  })();
38
- const ZONOS_URL = isZonosQa
39
- ? 'https://debug.js.zonos.com'
40
- : process.env.NEXT_PUBLIC_ZONOS_CDN_URL;
36
+ const ZONOS_URL = zonosQaUrl || process.env.NEXT_PUBLIC_ZONOS_CDN_URL;
41
37
  const UNPKG_ZONOS_URL = process.env.NEXT_PUBLIC_ZONOS_UNPKG_CDN_URL;
42
38
  const INTER_FONT_URL = 'https://rsms.me';
39
+ const GOOGLE_FONT_URL = 'https://fonts.googleapis.com';
43
40
  const INTER_FONT_REGEX = /^https:\/\/rsms\.me\/inter\/inter\.css(.*)$/;
44
41
  export class Zonos {
45
42
  }
@@ -49,252 +46,333 @@ Zonos.doneInit = false;
49
46
  Zonos.debug = !!window.location.search.match(/\?.*(&*)zonosDebug=1/);
50
47
  Zonos.isBigCommerce = false;
51
48
  Zonos.internationalHideSelector = '';
49
+ Zonos.zonosQaUrl = zonosQaUrl;
52
50
  Zonos.version = `v${process.env.NEXT_PUBLIC_ZONOS_PACKAGE_VERSION}`;
51
+ Zonos.modeAlerted = false;
53
52
  Zonos.getCurrentTimestamp = () => new Date().getTime();
53
+ Zonos.zonosController = null;
54
54
  Zonos.init = async ({ appearance, checkoutSettings, currencyConverter, helloSettings, zonosApiKey, }) => {
55
- if (Zonos.doneInit) {
56
- // do nothing if zonos is already initializeds
57
- return;
58
- }
59
- log(`====== ZONOS DEBUG MODE: on (${_a.version}) ======`);
60
- if (!zonosApiKey) {
61
- logError('Missing Zonos API key');
62
- return;
63
- }
64
- _a.zonosApiKey = zonosApiKey;
65
- log('init zonos');
66
- // inject zonos cdn
67
- Zonos.injectZonosCdn();
68
- // inject css for zonos elements
69
- Zonos.injectZonosCss();
70
- // inject fonts for zonos elements
71
- Zonos.injectFonts();
72
- // init zonos controller
73
- Zonos.injectController({
74
- config: {
75
- appearance,
76
- checkoutSettings,
77
- currencyConverter,
78
- helloSettings,
79
- },
80
- zonosApiKey,
81
- });
82
- Zonos.doneInit = true;
55
+ if (_a.doneInit) {
56
+ // do nothing if zonos is already initializeds
57
+ return;
58
+ }
59
+ log(`====== ZONOS DEBUG MODE: on (${_a.version}) ======`);
60
+ if (!zonosApiKey) {
61
+ logError('Missing Zonos API key');
62
+ return;
63
+ }
64
+ _a.zonosApiKey = zonosApiKey;
65
+ log('init zonos');
66
+ // add sentry to the project
67
+ _a.injectSentryScript();
68
+ // inject zonos cdn
69
+ _a.injectZonosCdn();
70
+ // inject css for zonos elements
71
+ _a.injectZonosCss();
72
+ // inject fonts for zonos elements
73
+ _a.injectFonts();
74
+ // init zonos controller
75
+ _a.injectController({
76
+ config: {
77
+ appearance,
78
+ checkoutSettings,
79
+ currencyConverter,
80
+ helloSettings,
81
+ },
82
+ zonosApiKey,
83
+ });
84
+ _a.doneInit = true;
83
85
  };
84
86
  Zonos.displayCurrency = () => {
85
- const zonosHello = document.querySelector('zonos-hello');
86
- if (zonosHello) {
87
- void zonosHello.displayCurrency();
88
- }
87
+ const zonosHello = document.querySelector('zonos-hello');
88
+ if (zonosHello) {
89
+ void zonosHello.displayCurrency();
90
+ }
89
91
  };
90
92
  Zonos.showNotification = (notification) => {
91
- const zonosController = document.querySelector('zonos-controller');
92
- void (zonosController === null || zonosController === void 0 ? void 0 : zonosController.showNotification(notification));
93
+ var _b;
94
+ void ((_b = _a.zonosController) === null || _b === void 0 ? void 0 : _b.showNotification(notification));
93
95
  };
94
96
  Zonos.disablePlaceOrderButtons = ({ autoEnable = true, disable, placeOrderButtonSelector, }) => {
95
- // if placeOrderAnchor is passed in the config for checkoutSettings, disable the place order button until zonos is initialized
96
- if (placeOrderButtonSelector) {
97
- const placeOrderButton = document.querySelectorAll(placeOrderButtonSelector);
98
- const disableEvent = (e) => {
99
- const target = e.target;
100
- // prevent default and propagation when the item has disabled attribute
101
- if (target.getAttribute('disabled')) {
102
- e.preventDefault();
103
- e.stopPropagation();
104
- }
105
- };
106
- placeOrderButton.forEach(button => {
107
- if (disable) {
108
- button.setAttribute('disabled', 'true');
109
- // prevent the selector to perform default action when it's disabled
110
- button.addEventListener('click', disableEvent);
111
- }
112
- else {
113
- button.removeAttribute('disabled');
114
- // clean up the event listener
115
- button.removeEventListener('click', disableEvent);
116
- }
117
- });
118
- // only auto enable if autoEnable is true and we are setting button disable
119
- if (autoEnable && disable) {
120
- setTimeout(() => {
121
- // release it if zonos is not initialized after 5 seconds (this is to prevent the place order button from being disabled forever due to api)
97
+ // if placeOrderAnchor is passed in the config for checkoutSettings, disable the place order button until zonos is initialized
98
+ if (placeOrderButtonSelector) {
99
+ const placeOrderButton = document.querySelectorAll(placeOrderButtonSelector);
100
+ const disableEvent = (e) => {
101
+ const target = e.target;
102
+ // prevent default and propagation when the item has disabled attribute
103
+ if (target.getAttribute('disabled')) {
104
+ e.preventDefault();
105
+ e.stopPropagation();
106
+ }
107
+ };
122
108
  placeOrderButton.forEach(button => {
123
- button.removeAttribute('disabled');
124
- // clean up the event listener if exists
125
- button.removeEventListener('click', disableEvent);
109
+ if (disable) {
110
+ button.setAttribute('disabled', 'true');
111
+ // prevent the selector to perform default action when it's disabled
112
+ button.addEventListener('click', disableEvent);
113
+ }
114
+ else {
115
+ button.removeAttribute('disabled');
116
+ // clean up the event listener
117
+ button.removeEventListener('click', disableEvent);
118
+ }
126
119
  });
127
- }, 5000);
120
+ // only auto enable if autoEnable is true and we are setting button disable
121
+ if (autoEnable && disable) {
122
+ setTimeout(() => {
123
+ // release it if zonos is not initialized after 5 seconds (this is to prevent the place order button from being disabled forever due to api)
124
+ placeOrderButton.forEach(button => {
125
+ button.removeAttribute('disabled');
126
+ // clean up the event listener if exists
127
+ button.removeEventListener('click', disableEvent);
128
+ });
129
+ }, 5000);
130
+ }
128
131
  }
129
- }
130
132
  };
131
133
  Zonos.injectController = ({ config, zonosApiKey, }) => {
132
- var _b;
133
- if (document.querySelector('zonos-controller')) {
134
- return;
135
- }
136
- // if placeOrderAnchor is passed in the config for checkoutSettings, disable the place order button until zonos is initialized
137
- if ((_b = config.checkoutSettings) === null || _b === void 0 ? void 0 : _b.placeOrderButtonSelector) {
138
- const placeOrderButtonSelector = config.checkoutSettings.placeOrderButtonSelector;
139
- _a.disablePlaceOrderButtons({
140
- disable: true,
141
- placeOrderButtonSelector,
134
+ var _b;
135
+ if (document.querySelector('zonos-controller')) {
136
+ return;
137
+ }
138
+ // if placeOrderAnchor is passed in the config for checkoutSettings, disable the place order button until zonos is initialized
139
+ if ((_b = config.checkoutSettings) === null || _b === void 0 ? void 0 : _b.placeOrderButtonSelector) {
140
+ const placeOrderButtonSelector = config.checkoutSettings.placeOrderButtonSelector;
141
+ _a.disablePlaceOrderButtons({
142
+ disable: true,
143
+ placeOrderButtonSelector,
144
+ });
145
+ }
146
+ const zonosController = document.createElement('zonos-controller');
147
+ zonosController.config = config;
148
+ zonosController.zonosApiKey = zonosApiKey;
149
+ zonosController.addEventListener('stripeInitEvent', async (event) => {
150
+ const { detail } = event;
151
+ log('loading Stripe');
152
+ const stripe = await zonosLoadStripe(detail.publishableKey);
153
+ if (!stripe) {
154
+ logError('API seems to be invalid or missing. Failed to load Stripe');
155
+ return;
156
+ }
157
+ window.Zonos.stripe = stripe;
158
+ void zonosController.initCheckoutElement(stripe);
142
159
  });
143
- }
144
- const zonosController = document.createElement('zonos-controller');
145
- zonosController.config = config;
146
- zonosController.zonosApiKey = zonosApiKey;
147
- zonosController.addEventListener('stripeInitEvent', async (event) => {
148
- const { detail } = event;
149
- log('loading Stripe');
150
- const stripe = await zonosLoadStripe(detail.publishableKey);
151
- if (!stripe) {
152
- logError('API seems to be invalid or missing. Failed to load Stripe');
153
- return;
160
+ document.body.appendChild(zonosController);
161
+ // set zonos controller to be global
162
+ _a.zonosController = zonosController;
163
+ log('Zonos controller injected!');
164
+ };
165
+ Zonos.injectSentryScript = () => {
166
+ const scriptUrl = 'https://browser.sentry-cdn.com/7.88.0/bundle.tracing.min.js';
167
+ const findScript = () => {
168
+ const script = document.querySelector(`script[src="${scriptUrl}"]`);
169
+ return !!script;
170
+ };
171
+ if (findScript()) {
172
+ // eslint-disable-next-line no-console
173
+ log('Sentry script already exists in the document', 'warn');
174
+ return;
154
175
  }
155
- window.Zonos.stripe = stripe;
156
- void zonosController.initCheckoutElement(stripe);
157
- });
158
- document.body.appendChild(zonosController);
159
- // eslint-disable-next-line no-console
160
- log('Zonos controller injected!');
176
+ const headOrBody = document.head || document.body;
177
+ // init zonos elements when the zonosKey is valid
178
+ // inject esmodule cdn for zonos elements
179
+ const script = document.createElement('script');
180
+ script.crossOrigin = 'anonymous';
181
+ script.src = scriptUrl;
182
+ script.integrity =
183
+ 'sha384-z/aQww1Fr6Mes0MO/2wlzQd2nXBCdDcKPXDTsMDMNPgTGRPqii3a4bzH79I+Vo8l';
184
+ script.setAttribute('data-lazy', 'no');
185
+ script.onerror = () => {
186
+ logError(`Failed to load ${script.src}`);
187
+ };
188
+ script.onload = () => {
189
+ var _b;
190
+ (_b = window.Sentry) === null || _b === void 0 ? void 0 : _b.init({
191
+ denyUrls: [
192
+ // Facebook flakiness
193
+ /graph\.facebook\.com/i,
194
+ // Facebook blocked
195
+ /connect\.facebook\.net\/en_US\/all\.js/i,
196
+ // Woopra flakiness
197
+ /eatdifferent\.com\.woopra-ns\.com/i,
198
+ /static\.woopra\.com\/js\/woopra\.js/i,
199
+ // Chrome extensions
200
+ /extensions\//i,
201
+ /^chrome:\/\//i,
202
+ /^chrome-extension:\/\//i,
203
+ // Other plugins
204
+ /webappstoolbarba\.texthelp\.com\//i,
205
+ /metrics\.itunes\.apple\.com\.edgesuite\.net\//i,
206
+ /dev.elements.zonos.com/i,
207
+ /js.zonos.com/,
208
+ ],
209
+ dsn: 'https://19168bd05af0e2e0e7520ad58953e4f2@o446983.ingest.sentry.io/4506400622837760',
210
+ release: `zonos-elements@${_a.version}`,
211
+ });
212
+ };
213
+ headOrBody.appendChild(script);
161
214
  };
162
215
  Zonos.injectScript = ({ fallBackDomain, isModule, scriptDomain, theRestUrl, }) => {
163
- const fullScriptUrl = `${scriptDomain}/${theRestUrl}`;
164
- const findScript = () => {
165
- const script = document.querySelector(`script[src="${fullScriptUrl}"]`);
166
- return !!script;
167
- };
168
- if (findScript()) {
169
- // eslint-disable-next-line no-console
170
- log(`Zonos script "${fullScriptUrl}" already exists in the document`, 'warn');
171
- return;
172
- }
173
- const headOrBody = document.head || document.body;
174
- // init zonos elements when the zonosKey is valid
175
- // inject esmodule cdn for zonos elements
176
- const script = document.createElement('script');
177
- if (!!isModule) {
178
- script.type = 'module';
179
- }
180
- else {
181
- script.noModule = true;
182
- }
183
- script.src = fullScriptUrl;
184
- script.onerror = () => {
185
- // only fallback if the stylesheetDomain is versioned. (https://v1.2.3.something.com || https://v1.something.com)
186
- const isVersioned = /\/\/v\d+\./g.test(scriptDomain);
187
- if (!isVersioned) {
188
- log('No need to fallback since this is not a versioned domain', 'warn');
189
- return;
216
+ const fullScriptUrl = `${scriptDomain}/${theRestUrl}`;
217
+ const findScript = () => {
218
+ const script = document.querySelector(`script[src="${fullScriptUrl}"]`);
219
+ return !!script;
220
+ };
221
+ if (findScript()) {
222
+ // eslint-disable-next-line no-console
223
+ log(`Zonos script "${fullScriptUrl}" already exists in the document`, 'warn');
224
+ return;
190
225
  }
191
- if (fallBackDomain) {
192
- _a.injectScript({
193
- isModule,
194
- scriptDomain: fallBackDomain,
195
- theRestUrl,
196
- });
226
+ const headOrBody = document.head || document.body;
227
+ // init zonos elements when the zonosKey is valid
228
+ // inject esmodule cdn for zonos elements
229
+ const script = document.createElement('script');
230
+ if (!!isModule) {
231
+ script.type = 'module';
197
232
  }
198
- logError(`Failed to load ${script.src}`);
199
- };
200
- headOrBody.appendChild(script);
233
+ else {
234
+ script.noModule = true;
235
+ }
236
+ script.src = fullScriptUrl;
237
+ script.crossOrigin = 'anonymous';
238
+ script.onerror = () => {
239
+ // only fallback if the stylesheetDomain is versioned. (https://v1.2.3.something.com || https://v1.something.com)
240
+ const isVersioned = /\/\/v\d+\./g.test(scriptDomain);
241
+ if (!isVersioned) {
242
+ log('No need to fallback since this is not a versioned domain', 'warn');
243
+ return;
244
+ }
245
+ if (fallBackDomain) {
246
+ _a.injectScript({
247
+ isModule,
248
+ scriptDomain: fallBackDomain,
249
+ theRestUrl,
250
+ });
251
+ }
252
+ logError(`Failed to load ${script.src}`);
253
+ };
254
+ headOrBody.appendChild(script);
201
255
  };
202
256
  Zonos.injectZonosCdn = () => {
203
- // init zonos elements when the zonosKey is valid
204
- // inject esmodule cdn for zonos elements
205
- _a.injectScript({
206
- fallBackDomain: UNPKG_ZONOS_URL,
207
- isModule: true,
208
- scriptDomain: ZONOS_URL,
209
- theRestUrl: 'dist/zonos-elements/zonos-elements.esm.js',
210
- });
211
- // inject non module cdn for zonos elements
212
- _a.injectScript({
213
- fallBackDomain: UNPKG_ZONOS_URL,
214
- isModule: false,
215
- scriptDomain: ZONOS_URL,
216
- theRestUrl: 'dist/zonos-elements/zonos-elements.js',
217
- });
218
- // eslint-disable-next-line no-console
219
- log('Zonos cdn script injected!');
257
+ // init zonos elements when the zonosKey is valid
258
+ // inject esmodule cdn for zonos elements
259
+ _a.injectScript({
260
+ fallBackDomain: UNPKG_ZONOS_URL,
261
+ isModule: true,
262
+ scriptDomain: ZONOS_URL,
263
+ theRestUrl: 'dist/zonos-elements/zonos-elements.esm.js',
264
+ });
265
+ // inject non module cdn for zonos elements
266
+ _a.injectScript({
267
+ fallBackDomain: UNPKG_ZONOS_URL,
268
+ isModule: false,
269
+ scriptDomain: ZONOS_URL,
270
+ theRestUrl: 'dist/zonos-elements/zonos-elements.js',
271
+ });
272
+ // eslint-disable-next-line no-console
273
+ log('Zonos cdn script injected!');
220
274
  };
221
275
  Zonos.injectStylesheet = ({ fallBackDomain, stylesheetDomain, theRestUrl, }) => {
222
- const headOrBody = document.head || document.body;
223
- // inject preconnect css for zonos elements
224
- const zonosCssPreconnect = document.createElement('link');
225
- zonosCssPreconnect.rel = 'preconnect';
226
- zonosCssPreconnect.href = `${ZONOS_URL}/`;
227
- headOrBody.appendChild(zonosCssPreconnect);
228
- // inject css for zonos elements
229
- const zonosCss = document.createElement('link');
230
- zonosCss.rel = 'stylesheet';
231
- zonosCss.href = `${stylesheetDomain}/${theRestUrl}`;
232
- zonosCss.onerror = () => {
233
- // only fallback if the stylesheetDomain is versioned. (https://v1.2.3.something.com || https://v1.something.com)
234
- const isVersioned = /\/\/v\d+\./g.test(stylesheetDomain);
235
- if (!isVersioned) {
236
- log('No need to fallback since this is not a versioned domain', 'warn');
237
- return;
238
- }
239
- if (fallBackDomain && isVersioned) {
240
- _a.injectStylesheet({
241
- stylesheetDomain: fallBackDomain,
242
- theRestUrl,
243
- });
244
- }
245
- logError(`Failed to load ${zonosCss.href}`);
246
- };
247
- headOrBody.appendChild(zonosCss);
276
+ const headOrBody = document.head || document.body;
277
+ // inject preconnect css for zonos elements
278
+ const zonosCssPreconnect = document.createElement('link');
279
+ zonosCssPreconnect.rel = 'preconnect';
280
+ zonosCssPreconnect.href = `${ZONOS_URL}/`;
281
+ headOrBody.appendChild(zonosCssPreconnect);
282
+ // inject css for zonos elements
283
+ const zonosCss = document.createElement('link');
284
+ zonosCss.rel = 'stylesheet';
285
+ zonosCss.href = `${stylesheetDomain}/${theRestUrl}`;
286
+ zonosCss.onerror = () => {
287
+ // only fallback if the stylesheetDomain is versioned. (https://v1.2.3.something.com || https://v1.something.com)
288
+ const isVersioned = /\/\/v\d+\./g.test(stylesheetDomain);
289
+ if (!isVersioned) {
290
+ log('No need to fallback since this is not a versioned domain', 'warn');
291
+ return;
292
+ }
293
+ if (fallBackDomain && isVersioned) {
294
+ _a.injectStylesheet({
295
+ stylesheetDomain: fallBackDomain,
296
+ theRestUrl,
297
+ });
298
+ }
299
+ logError(`Failed to load ${zonosCss.href}`);
300
+ };
301
+ headOrBody.appendChild(zonosCss);
248
302
  };
249
303
  Zonos.injectZonosCss = () => {
250
- const findStyleLink = () => {
251
- return !!document.querySelector(`link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]`);
252
- };
253
- if (findStyleLink()) {
254
- // eslint-disable-next-line no-console
255
- log('Zonos style links already injected', 'warn');
256
- return;
257
- }
258
- // inject css for zonos elements
259
- _a.injectStylesheet({
260
- fallBackDomain: UNPKG_ZONOS_URL,
261
- stylesheetDomain: ZONOS_URL,
262
- theRestUrl: 'dist/zonos-elements/zonos-elements.css',
263
- });
264
- // eslint-disable-next-line no-console
265
- log('Zonos style css injected!');
304
+ const findStyleLink = () => {
305
+ return !!document.querySelector(`link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]`);
306
+ };
307
+ if (findStyleLink()) {
308
+ log('Zonos style links already injected', 'warn');
309
+ return;
310
+ }
311
+ // inject css for zonos elements
312
+ _a.injectStylesheet({
313
+ fallBackDomain: UNPKG_ZONOS_URL,
314
+ stylesheetDomain: ZONOS_URL,
315
+ theRestUrl: 'dist/zonos-elements/zonos-elements.css',
316
+ });
317
+ log('Zonos style css injected!');
266
318
  };
267
319
  Zonos.injectFonts = () => {
268
- const findFont = () => {
269
- const links = document.querySelectorAll(`link[rel="stylesheet"][href^="${INTER_FONT_URL}"]`);
270
- for (let i = 0; i < links.length; i++) {
271
- const link = links[i];
272
- if (!link) {
273
- continue;
274
- }
275
- if (INTER_FONT_REGEX.test(link.href)) {
276
- continue;
277
- }
278
- return link;
320
+ const findFont = () => {
321
+ const links = document.querySelectorAll(`link[rel="stylesheet"][href^="${INTER_FONT_URL}"]`);
322
+ for (let i = 0; i < links.length; i++) {
323
+ const link = links[i];
324
+ if (!link) {
325
+ continue;
326
+ }
327
+ if (INTER_FONT_REGEX.test(link.href)) {
328
+ continue;
329
+ }
330
+ return link;
331
+ }
332
+ return null;
333
+ };
334
+ if (findFont()) {
335
+ log('Inter font already injected', 'warn');
336
+ return;
279
337
  }
280
- return null;
281
- };
282
- if (findFont()) {
283
- // eslint-disable-next-line no-console
284
- log('Inter font already injected', 'warn');
285
- return;
286
- }
287
- const headOrBody = document.head || document.body;
288
- // inject css for zonos elements
289
- const fontPreconnect = document.createElement('link');
290
- fontPreconnect.rel = 'preconnect';
291
- fontPreconnect.href = INTER_FONT_URL;
292
- headOrBody.appendChild(fontPreconnect);
293
- // inject css for zonos elements
294
- const font = document.createElement('link');
295
- font.rel = 'stylesheet';
296
- font.href = `${INTER_FONT_URL}/inter/inter.css`;
297
- headOrBody.appendChild(font);
298
- // eslint-disable-next-line no-console
299
- log('Zonos font injected!');
338
+ const headOrBody = document.head || document.body;
339
+ // inject font css for zonos elements
340
+ const fontPreconnect = document.createElement('link');
341
+ fontPreconnect.rel = 'preconnect';
342
+ fontPreconnect.href = INTER_FONT_URL;
343
+ headOrBody.appendChild(fontPreconnect);
344
+ // inject font css for zonos elements
345
+ const font = document.createElement('link');
346
+ font.rel = 'stylesheet';
347
+ font.href = `${INTER_FONT_URL}/inter/inter.css`;
348
+ headOrBody.appendChild(font);
349
+ log('Zonos font injected!');
350
+ };
351
+ // apply font for zonos elements and inject font if needed
352
+ Zonos.setupGoogleFont = (fontFamily) => {
353
+ var _b;
354
+ void ((_b = _a.zonosController) === null || _b === void 0 ? void 0 : _b.setupGoogleFont(fontFamily));
355
+ };
356
+ // this function is to inject google font to the browser, not apply the font for zonos elements, to apply the font and inject font if needed, use `setupGoogleFont` instead
357
+ Zonos.injectSupportGoogleFont = (fontUrl) => {
358
+ var _b;
359
+ log(`[FONT] injecting ${fontUrl}`);
360
+ const fontFamily = (_b = fontUrl.match(/family=(.*?):/)) === null || _b === void 0 ? void 0 : _b[1];
361
+ const headOrBody = document.head || document.body;
362
+ // inject font css for zonos elements
363
+ if (!document.querySelector(`link[rel="preconnect"][href^="${GOOGLE_FONT_URL}"]`)) {
364
+ const customFontPreconnect = document.createElement('link');
365
+ customFontPreconnect.rel = 'preconnect';
366
+ customFontPreconnect.href = GOOGLE_FONT_URL;
367
+ headOrBody.appendChild(customFontPreconnect);
368
+ }
369
+ if (document.querySelector(`link[rel="stylesheet"][href="${fontUrl}"]`)) {
370
+ log(`[FONT] ${fontFamily} font already injected`, 'warn');
371
+ return;
372
+ }
373
+ const customFont = document.createElement('link');
374
+ customFont.rel = 'stylesheet';
375
+ customFont.href = fontUrl;
376
+ headOrBody.appendChild(customFont);
377
+ log(`[FONT] ${fontFamily} font injected!`);
300
378
  };